idnits 2.17.1 draft-ietf-ccamp-otn-tunnel-model-12.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 174 has weird spacing: '...ad-rate uin...' == Line 192 has weird spacing: '...ad-rate uin...' == Line 211 has weird spacing: '...ad-rate uin...' == Line 231 has weird spacing: '...ad-rate uin...' == Line 250 has weird spacing: '...ad-rate uin...' -- The document date (February 22, 2021) is 1152 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-layer1-types-08 == Outdated reference: A later version (-17) exists of draft-ietf-ccamp-otn-topo-yang-11 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-25 -- Possible downref: Non-RFC (?) normative reference: ref. 'ITU-Tg709' == Outdated reference: A later version (-17) exists of draft-ietf-ccamp-transport-nbi-app-statement-12 == Outdated reference: A later version (-11) exists of draft-ietf-teas-actn-yang-06 Summary: 0 errors (**), 0 flaws (~~), 11 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CCAMP Working Group H. Zheng 3 Internet-Draft I. Busi 4 Intended status: Standards Track Huawei Technologies 5 Expires: August 26, 2021 S. Belotti 6 Nokia 7 V. Lopez 8 Telefonica 9 Y. Xu 10 CAICT 11 February 22, 2021 13 OTN Tunnel YANG Model 14 draft-ietf-ccamp-otn-tunnel-model-12 16 Abstract 18 This document describes the YANG data model for tunnels in OTN TE 19 networks. The model can be used to do the configuration in order to 20 establish the tunnel in OTN network. This work is independent with 21 the control plane protocols. The YANG data model defined in this 22 document conforms to the Network Management Datastore Architecture 23 (NMDA). 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on August 26, 2021. 42 Copyright Notice 44 Copyright (c) 2021 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 61 3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3 62 3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3 63 3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3 64 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 65 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 15 66 6. Security Considerations . . . . . . . . . . . . . . . . . . . 31 67 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 68 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 69 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32 70 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 71 10.1. Normative References . . . . . . . . . . . . . . . . . . 33 72 10.2. Informative References . . . . . . . . . . . . . . . . . 34 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 75 1. Introduction 77 OTN transport networks, specified in [ITU-Tg709], can carry various 78 types of client signals. In many cases, the client signal is carried 79 over an OTN tunnel across connected domains in a multi-domain 80 network. 82 This document provides YANG model for creating OTN tunnel. The model 83 augments the generic TE Tunnel model specified in 84 [I-D.ietf-teas-yang-te]. 86 2. Terminology and Notations 88 A simplified graphical representation of the data model is used in 89 this document. The meaning of the symbols in the YANG data tree 90 presented later in this draft is defined in [RFC8340]. They are 91 provided below for reference. 93 o Brackets "[" and "]" enclose list keys. 95 o Abbreviations before data node names: "rw" means configuration 96 (read-write) and "ro" state data (read-only). 98 o Symbols after data node names: "?" means an optional node, "!" 99 means a presence container, and "*" denotes a list and leaf-list. 101 o Parentheses enclose choice and case nodes, and case nodes are also 102 marked with a colon (":"). 104 o Ellipsis ("...") stands for contents of subtrees that are not 105 shown. 107 o More OTN specific terms can be found in 108 [I-D.ietf-ccamp-otn-topo-yang]. 110 3. OTN Tunnel Model Description 112 3.1. Overview of OTN Tunnel Model 114 The OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a 115 basic model and augment to the TE tunnel with OTN-specific 116 parameters, including the bandwidth information and label 117 information. It is also worth noting that the OTN tunnel 118 provisioning is usually based on the OTN topology. Therefore the OTN 119 tunnel model is usually used together with OTN topology model 120 specified in [I-D.ietf-ccamp-otn-topo-yang]. The OTN tunnel model 121 also imports a few type modules, including ietf-layer1-types, ietf- 122 te-types and ietf-inet-types. The OTN-specific attributes, such as 123 Tributary Slot (TS), Tributary Port Number (TPN), are specified in 124 the module ietf-layer1-types in [I-D.ietf-ccamp-layer1-types] and 125 used in this document. 127 More scenarios and model applications can be found in 128 [I-D.ietf-ccamp-transport-nbi-app-statement] and 129 [I-D.ietf-teas-actn-yang]. The current model is following the YANG 130 language specification as [RFC7950], and the corresponding protocol 131 is recommended to be Netconf protocol in [RFC6241] or RESTconf 132 protocol in [RFC8040]. 134 The YANG module ietf-otn-tunnel defined in this document conforms to 135 the Network Management Datastore Architecture (NMDA) defined in 136 [RFC8342]. 138 3.2. OTN-specific Parameters in Tunnel Model 140 OTN specific parameters have been augmenting to the TE tunnel models. 141 The attributes on both of the source and destination need to be 142 configured when setting up the tunnel. Typical parameters, including 143 client signal, TPN, TSG and corresponding tributary slot information, 144 are required in the OTN tunnel model. These parameters are 145 consistent with the framework in [RFC7062], and the specification in 146 [RFC7138] and [RFC7139]. 148 The OTN bandwidth information has been augmenting to various sections 149 of TE tunnel models, including tunnel bandwidth, primary path 150 bandwidth and so on. The OTN label information has been augmenting 151 to label hop of a group of routing objects and also LSPs. 153 4. OTN Tunnel YANG Tree 155 module: ietf-otn-tunnel 156 augment /te:te/te:globals/te:named-path-constraints 157 /te:named-path-constraint/te:te-bandwidth/te:technology: 158 +--:(otn) 159 +--rw otn 160 +--rw odu-type? identityref 161 +--rw (oduflex-type)? 162 +--:(generic) 163 | +--rw nominal-bit-rate uint64 164 +--:(cbr) 165 | +--rw client-type identityref 166 +--:(gfp-n-k) 167 | +--rw gfp-n uint8 168 | +--rw gfp-k? gfp-k 169 +--:(flexe-client) 170 | +--rw flexe-client flexe-client-rate 171 +--:(flexe-aware) 172 | +--rw flexe-aware-n uint16 173 +--:(packet) 174 +--rw opuflex-payload-rate uint64 175 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: 176 +--:(otn) 177 +--rw otn 178 +--rw odu-type? identityref 179 +--rw (oduflex-type)? 180 +--:(generic) 181 | +--rw nominal-bit-rate uint64 182 +--:(cbr) 183 | +--rw client-type identityref 184 +--:(gfp-n-k) 185 | +--rw gfp-n uint8 186 | +--rw gfp-k? gfp-k 187 +--:(flexe-client) 188 | +--rw flexe-client flexe-client-rate 189 +--:(flexe-aware) 190 | +--rw flexe-aware-n uint16 191 +--:(packet) 192 +--rw opuflex-payload-rate uint64 193 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 194 /te:p2p-primary-path/te:te-bandwidth/te:technology: 195 +--:(otn) 196 +--rw otn 197 +--rw odu-type? identityref 198 +--rw (oduflex-type)? 199 +--:(generic) 200 | +--rw nominal-bit-rate uint64 201 +--:(cbr) 202 | +--rw client-type identityref 203 +--:(gfp-n-k) 204 | +--rw gfp-n uint8 205 | +--rw gfp-k? gfp-k 206 +--:(flexe-client) 207 | +--rw flexe-client flexe-client-rate 208 +--:(flexe-aware) 209 | +--rw flexe-aware-n uint16 210 +--:(packet) 211 +--rw opuflex-payload-rate uint64 212 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 213 /te:p2p-primary-path/te:p2p-primary-reverse-path 214 /te:te-bandwidth/te:technology: 215 +--:(otn) 216 +--rw otn 217 +--rw odu-type? identityref 218 +--rw (oduflex-type)? 219 +--:(generic) 220 | +--rw nominal-bit-rate uint64 221 +--:(cbr) 222 | +--rw client-type identityref 223 +--:(gfp-n-k) 224 | +--rw gfp-n uint8 225 | +--rw gfp-k? gfp-k 226 +--:(flexe-client) 227 | +--rw flexe-client flexe-client-rate 228 +--:(flexe-aware) 229 | +--rw flexe-aware-n uint16 230 +--:(packet) 231 +--rw opuflex-payload-rate uint64 232 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 233 /te:p2p-secondary-path/te:te-bandwidth/te:technology: 234 +--:(otn) 235 +--rw otn 236 +--rw odu-type? identityref 237 +--rw (oduflex-type)? 238 +--:(generic) 239 | +--rw nominal-bit-rate uint64 240 +--:(cbr) 241 | +--rw client-type identityref 242 +--:(gfp-n-k) 243 | +--rw gfp-n uint8 244 | +--rw gfp-k? gfp-k 245 +--:(flexe-client) 246 | +--rw flexe-client flexe-client-rate 247 +--:(flexe-aware) 248 | +--rw flexe-aware-n uint16 249 +--:(packet) 250 +--rw opuflex-payload-rate uint64 251 augment /te:te/te:globals/te:named-path-constraints 252 /te:named-path-constraint 253 /te:explicit-route-objects-always 254 /te:route-object-exclude-always/te:type/te:label 255 /te:label-hop/te:te-label/te:technology: 256 +--:(otn) 257 +--rw otn-tpn? otn-tpn 258 +--rw tsg? identityref 259 +--rw ts-list? string 260 augment /te:te/te:globals/te:named-path-constraints 261 /te:named-path-constraint 262 /te:explicit-route-objects-always 263 /te:route-object-include-exclude/te:type/te:label 264 /te:label-hop/te:te-label/te:technology: 265 +--:(otn) 266 +--rw otn-tpn? otn-tpn 267 +--rw tsg? identityref 268 +--rw ts-list? string 269 augment /te:te/te:globals/te:named-path-constraints 270 /te:named-path-constraint/te:path-in-segment 271 /te:label-restrictions/te:label-restriction: 272 +--rw range-type? otn-label-range-type 273 +--rw tsg? identityref 274 +--rw odu-type-list* identityref 275 +--rw priority? uint8 276 augment /te:te/te:globals/te:named-path-constraints 277 /te:named-path-constraint/te:path-in-segment 278 /te:label-restrictions/te:label-restriction 279 /te:label-start/te:te-label/te:technology: 280 +--:(otn) 281 +--rw (range-type)? 282 +--:(trib-port) 283 | +--rw otn-tpn? otn-tpn 284 +--:(trib-slot) 285 +--rw otn-ts? otn-ts 286 augment /te:te/te:globals/te:named-path-constraints 287 /te:named-path-constraint/te:path-in-segment 288 /te:label-restrictions/te:label-restriction/te:label-end 289 /te:te-label/te:technology: 290 +--:(otn) 291 +--rw (range-type)? 292 +--:(trib-port) 293 | +--rw otn-tpn? otn-tpn 294 +--:(trib-slot) 295 +--rw otn-ts? otn-ts 296 augment /te:te/te:globals/te:named-path-constraints 297 /te:named-path-constraint/te:path-out-segment 298 /te:label-restrictions/te:label-restriction: 299 +--rw range-type? otn-label-range-type 300 +--rw tsg? identityref 301 +--rw odu-type-list* identityref 302 +--rw priority? uint8 303 augment /te:te/te:globals/te:named-path-constraints 304 /te:named-path-constraint/te:path-out-segment 305 /te:label-restrictions/te:label-restriction 306 /te:label-start/te:te-label/te:technology: 307 +--:(otn) 308 +--rw (range-type)? 309 +--:(trib-port) 310 | +--rw otn-tpn? otn-tpn 311 +--:(trib-slot) 312 +--rw otn-ts? otn-ts 313 augment /te:te/te:globals/te:named-path-constraints 314 /te:named-path-constraint/te:path-out-segment 315 /te:label-restrictions/te:label-restriction/te:label-end 316 /te:te-label/te:technology: 317 +--:(otn) 318 +--rw (range-type)? 319 +--:(trib-port) 320 | +--rw otn-tpn? otn-tpn 321 +--:(trib-slot) 322 +--rw otn-ts? otn-ts 323 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 324 /te:p2p-primary-path/te:optimizations/te:algorithm 325 /te:metric/te:optimization-metric 326 /te:explicit-route-exclude-objects 327 /te:route-object-exclude-object/te:type/te:label 328 /te:label-hop/te:te-label/te:technology: 329 +--:(otn) 330 +--rw otn-tpn? otn-tpn 331 +--rw tsg? identityref 332 +--rw ts-list? string 333 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 334 /te:p2p-primary-path/te:optimizations/te:algorithm 335 /te:metric/te:optimization-metric 336 /te:explicit-route-include-objects 337 /te:route-object-include-object/te:type/te:label 338 /te:label-hop/te:te-label/te:technology: 339 +--:(otn) 340 +--rw otn-tpn? otn-tpn 341 +--rw tsg? identityref 342 +--rw ts-list? string 343 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 344 /te:p2p-primary-path/te:explicit-route-objects-always 345 /te:route-object-exclude-always/te:type/te:label 346 /te:label-hop/te:te-label/te:technology: 347 +--:(otn) 348 +--rw otn-tpn? otn-tpn 349 +--rw tsg? identityref 350 +--rw ts-list? string 351 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 352 /te:p2p-primary-path/te:explicit-route-objects-always 353 /te:route-object-include-exclude/te:type/te:label 354 /te:label-hop/te:te-label/te:technology: 355 +--:(otn) 356 +--rw otn-tpn? otn-tpn 357 +--rw tsg? identityref 358 +--rw ts-list? string 359 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 360 /te:p2p-primary-path/te:path-in-segment 361 /te:label-restrictions/te:label-restriction: 362 +--rw range-type? otn-label-range-type 363 +--rw tsg? identityref 364 +--rw odu-type-list* identityref 365 +--rw priority? uint8 366 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 367 /te:p2p-primary-path/te:path-in-segment 368 /te:label-restrictions/te:label-restriction 369 /te:label-start/te:te-label/te:technology: 370 +--:(otn) 371 +--rw (range-type)? 372 +--:(trib-port) 373 | +--rw otn-tpn? otn-tpn 374 +--:(trib-slot) 375 +--rw otn-ts? otn-ts 376 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 377 /te:p2p-primary-path/te:path-in-segment 378 /te:label-restrictions/te:label-restriction/te:label-end 379 /te:te-label/te:technology: 380 +--:(otn) 381 +--rw (range-type)? 382 +--:(trib-port) 383 | +--rw otn-tpn? otn-tpn 384 +--:(trib-slot) 385 +--rw otn-ts? otn-ts 386 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 387 /te:p2p-primary-path/te:path-out-segment 388 /te:label-restrictions/te:label-restriction: 389 +--rw range-type? otn-label-range-type 390 +--rw tsg? identityref 391 +--rw odu-type-list* identityref 392 +--rw priority? uint8 393 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 394 /te:p2p-primary-path/te:path-out-segment 395 /te:label-restrictions/te:label-restriction 396 /te:label-start/te:te-label/te:technology: 397 +--:(otn) 398 +--rw (range-type)? 399 +--:(trib-port) 400 | +--rw otn-tpn? otn-tpn 401 +--:(trib-slot) 402 +--rw otn-ts? otn-ts 403 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 404 /te:p2p-primary-path/te:path-out-segment 405 /te:label-restrictions/te:label-restriction/te:label-end 406 /te:te-label/te:technology: 407 +--:(otn) 408 +--rw (range-type)? 409 +--:(trib-port) 410 | +--rw otn-tpn? otn-tpn 411 +--:(trib-slot) 412 +--rw otn-ts? otn-ts 413 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 414 /te:p2p-primary-path/te:computed-paths-properties 415 /te:computed-path-properties/te:path-properties 416 /te:path-route-objects/te:path-computed-route-object 417 /te:type/te:label/te:label-hop/te:te-label/te:technology: 418 +--:(otn) 419 +--ro otn-tpn? otn-tpn 420 +--ro tsg? identityref 421 +--ro ts-list? string 422 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 423 /te:p2p-primary-path/te:lsps/te:lsp 424 /te:lsp-record-route-information 425 /te:lsp-record-route-information/te:type/te:label 426 /te:label-hop/te:te-label/te:technology: 427 +--:(otn) 428 +--ro otn-tpn? otn-tpn 429 +--ro tsg? identityref 430 +--ro ts-list? string 431 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 432 /te:p2p-primary-path/te:lsps/te:lsp/te:path-properties 433 /te:path-route-objects/te:path-computed-route-object 434 /te:type/te:label/te:label-hop/te:te-label/te:technology: 435 +--:(otn) 436 +--ro otn-tpn? otn-tpn 437 +--ro tsg? identityref 438 +--ro ts-list? string 439 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 440 /te:p2p-primary-path/te:p2p-primary-reverse-path 441 /te:optimizations/te:algorithm/te:metric 442 /te:optimization-metric/te:explicit-route-exclude-objects 443 /te:route-object-exclude-object/te:type/te:label 444 /te:label-hop/te:te-label/te:technology: 445 +--:(otn) 446 +--rw otn-tpn? otn-tpn 447 +--rw tsg? identityref 448 +--rw ts-list? string 449 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 450 /te:p2p-primary-path/te:p2p-primary-reverse-path 451 /te:optimizations/te:algorithm/te:metric 452 /te:optimization-metric/te:explicit-route-include-objects 453 /te:route-object-include-object/te:type/te:label 454 /te:label-hop/te:te-label/te:technology: 455 +--:(otn) 456 +--rw otn-tpn? otn-tpn 457 +--rw tsg? identityref 458 +--rw ts-list? string 459 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 460 /te:p2p-primary-path/te:p2p-primary-reverse-path 461 /te:explicit-route-objects-always 462 /te:route-object-exclude-always/te:type/te:label 463 /te:label-hop/te:te-label/te:technology: 464 +--:(otn) 465 +--rw otn-tpn? otn-tpn 466 +--rw tsg? identityref 467 +--rw ts-list? string 468 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 469 /te:p2p-primary-path/te:p2p-primary-reverse-path 470 /te:explicit-route-objects-always 471 /te:route-object-include-exclude/te:type/te:label 472 /te:label-hop/te:te-label/te:technology: 473 +--:(otn) 474 +--rw otn-tpn? otn-tpn 475 +--rw tsg? identityref 476 +--rw ts-list? string 477 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 478 /te:p2p-primary-path/te:p2p-primary-reverse-path 479 /te:path-in-segment/te:label-restrictions 480 /te:label-restriction: 481 +--rw range-type? otn-label-range-type 482 +--rw tsg? identityref 483 +--rw odu-type-list* identityref 484 +--rw priority? uint8 485 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 486 /te:p2p-primary-path/te:p2p-primary-reverse-path 487 /te:path-in-segment/te:label-restrictions 488 /te:label-restriction/te:label-start/te:te-label 489 /te:technology: 490 +--:(otn) 491 +--rw (range-type)? 492 +--:(trib-port) 493 | +--rw otn-tpn? otn-tpn 494 +--:(trib-slot) 495 +--rw otn-ts? otn-ts 496 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 497 /te:p2p-primary-path/te:p2p-primary-reverse-path 498 /te:path-in-segment/te:label-restrictions 499 /te:label-restriction/te:label-end/te:te-label 500 /te:technology: 501 +--:(otn) 502 +--rw (range-type)? 503 +--:(trib-port) 504 | +--rw otn-tpn? otn-tpn 505 +--:(trib-slot) 506 +--rw otn-ts? otn-ts 507 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 508 /te:p2p-primary-path/te:p2p-primary-reverse-path 509 /te:path-out-segment/te:label-restrictions 510 /te:label-restriction: 511 +--rw range-type? otn-label-range-type 512 +--rw tsg? identityref 513 +--rw odu-type-list* identityref 514 +--rw priority? uint8 515 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 516 /te:p2p-primary-path/te:p2p-primary-reverse-path 517 /te:path-out-segment/te:label-restrictions 518 /te:label-restriction/te:label-start/te:te-label 519 /te:technology: 520 +--:(otn) 521 +--rw (range-type)? 522 +--:(trib-port) 523 | +--rw otn-tpn? otn-tpn 524 +--:(trib-slot) 525 +--rw otn-ts? otn-ts 526 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 527 /te:p2p-primary-path/te:p2p-primary-reverse-path 528 /te:path-out-segment/te:label-restrictions 529 /te:label-restriction/te:label-end/te:te-label 530 /te:technology: 531 +--:(otn) 532 +--rw (range-type)? 533 +--:(trib-port) 534 | +--rw otn-tpn? otn-tpn 535 +--:(trib-slot) 536 +--rw otn-ts? otn-ts 537 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 538 /te:p2p-primary-path/te:p2p-primary-reverse-path 539 /te:computed-paths-properties/te:computed-path-properties 540 /te:path-properties/te:path-route-objects 541 /te:path-computed-route-object/te:type/te:label 542 /te:label-hop/te:te-label/te:technology: 543 +--:(otn) 544 +--ro otn-tpn? otn-tpn 545 +--ro tsg? identityref 546 +--ro ts-list? string 547 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 548 /te:p2p-primary-path/te:p2p-primary-reverse-path/te:lsps 549 /te:lsp/te:lsp-record-route-information 550 /te:lsp-record-route-information/te:type/te:label 551 /te:label-hop/te:te-label/te:technology: 552 +--:(otn) 553 +--ro otn-tpn? otn-tpn 554 +--ro tsg? identityref 555 +--ro ts-list? string 556 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 557 /te:p2p-primary-path/te:p2p-primary-reverse-path/te:lsps 558 /te:lsp/te:path-properties/te:path-route-objects 559 /te:path-computed-route-object/te:type/te:label 560 /te:label-hop/te:te-label/te:technology: 561 +--:(otn) 562 +--ro otn-tpn? otn-tpn 563 +--ro tsg? identityref 564 +--ro ts-list? string 565 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 566 /te:p2p-secondary-path/te:optimizations/te:algorithm 567 /te:metric/te:optimization-metric 568 /te:explicit-route-exclude-objects 569 /te:route-object-exclude-object/te:type/te:label 570 /te:label-hop/te:te-label/te:technology: 571 +--:(otn) 572 +--rw otn-tpn? otn-tpn 573 +--rw tsg? identityref 574 +--rw ts-list? string 575 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 576 /te:p2p-secondary-path/te:optimizations/te:algorithm 577 /te:metric/te:optimization-metric 578 /te:explicit-route-include-objects 579 /te:route-object-include-object/te:type/te:label 580 /te:label-hop/te:te-label/te:technology: 581 +--:(otn) 582 +--rw otn-tpn? otn-tpn 583 +--rw tsg? identityref 584 +--rw ts-list? string 585 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 586 /te:p2p-secondary-path/te:explicit-route-objects-always 587 /te:route-object-exclude-always/te:type/te:label 588 /te:label-hop/te:te-label/te:technology: 589 +--:(otn) 590 +--rw otn-tpn? otn-tpn 591 +--rw tsg? identityref 592 +--rw ts-list? string 593 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 594 /te:p2p-secondary-path/te:explicit-route-objects-always 595 /te:route-object-include-exclude/te:type/te:label 596 /te:label-hop/te:te-label/te:technology: 597 +--:(otn) 598 +--rw otn-tpn? otn-tpn 599 +--rw tsg? identityref 600 +--rw ts-list? string 601 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 602 /te:p2p-secondary-path/te:path-in-segment 603 /te:label-restrictions/te:label-restriction: 604 +--rw range-type? otn-label-range-type 605 +--rw tsg? identityref 606 +--rw odu-type-list* identityref 607 +--rw priority? uint8 608 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 609 /te:p2p-secondary-path/te:path-in-segment 610 /te:label-restrictions/te:label-restriction 611 /te:label-start/te:te-label/te:technology: 612 +--:(otn) 613 +--rw (range-type)? 614 +--:(trib-port) 615 | +--rw otn-tpn? otn-tpn 616 +--:(trib-slot) 617 +--rw otn-ts? otn-ts 618 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 619 /te:p2p-secondary-path/te:path-in-segment 620 /te:label-restrictions/te:label-restriction/te:label-end 621 /te:te-label/te:technology: 622 +--:(otn) 623 +--rw (range-type)? 624 +--:(trib-port) 625 | +--rw otn-tpn? otn-tpn 626 +--:(trib-slot) 627 +--rw otn-ts? otn-ts 628 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 629 /te:p2p-secondary-path/te:path-out-segment 630 /te:label-restrictions/te:label-restriction: 631 +--rw range-type? otn-label-range-type 632 +--rw tsg? identityref 633 +--rw odu-type-list* identityref 634 +--rw priority? uint8 635 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 636 /te:p2p-secondary-path/te:path-out-segment 637 /te:label-restrictions/te:label-restriction 638 /te:label-start/te:te-label/te:technology: 639 +--:(otn) 640 +--rw (range-type)? 641 +--:(trib-port) 642 | +--rw otn-tpn? otn-tpn 643 +--:(trib-slot) 644 +--rw otn-ts? otn-ts 645 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 646 /te:p2p-secondary-path/te:path-out-segment 647 /te:label-restrictions/te:label-restriction/te:label-end 648 /te:te-label/te:technology: 649 +--:(otn) 650 +--rw (range-type)? 651 +--:(trib-port) 652 | +--rw otn-tpn? otn-tpn 653 +--:(trib-slot) 654 +--rw otn-ts? otn-ts 655 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 656 /te:p2p-secondary-path/te:computed-paths-properties 657 /te:computed-path-properties/te:path-properties 658 /te:path-route-objects/te:path-computed-route-object 659 /te:type/te:label/te:label-hop/te:te-label/te:technology: 660 +--:(otn) 661 +--ro otn-tpn? otn-tpn 662 +--ro tsg? identityref 663 +--ro ts-list? string 664 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 665 /te:p2p-secondary-path/te:lsps/te:lsp 666 /te:lsp-record-route-information 667 /te:lsp-record-route-information/te:type/te:label 668 /te:label-hop/te:te-label/te:technology: 669 +--:(otn) 670 +--ro otn-tpn? otn-tpn 671 +--ro tsg? identityref 672 +--ro ts-list? string 673 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 674 /te:p2p-secondary-path/te:lsps/te:lsp/te:path-properties 675 /te:path-route-objects/te:path-computed-route-object 676 /te:type/te:label/te:label-hop/te:te-label/te:technology: 677 +--:(otn) 678 +--ro otn-tpn? otn-tpn 679 +--ro tsg? identityref 680 +--ro ts-list? string 681 augment /te:te/te:lsps-state/te:lsp/te:lsp-record-route-information 682 /te:lsp-record-route-information/te:type/te:label 683 /te:label-hop/te:te-label/te:technology: 684 +--:(otn) 685 +--ro otn-tpn? otn-tpn 686 +--ro tsg? identityref 687 +--ro ts-list? string 689 5. OTN Tunnel YANG Code 691 file "ietf-otn-tunnel@2021-02-10.yang" 692 module ietf-otn-tunnel { 693 yang-version 1.1; 694 namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; 695 prefix "otn-tunnel"; 697 import ietf-te { 698 prefix "te"; 699 revision-date "2019-02-15"; 700 reference 701 "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic 702 Engineering Tunnels and Interfaces. "; 703 } 705 import ietf-layer1-types { 706 prefix "l1-types"; 707 reference 708 "I-D.ietf-ccamp-layer1-types: 709 A YANG Data Model for Layer 1 Types. "; 710 } 712 organization 713 "IETF CCAMP Working Group"; 714 contact 715 "WG Web: 716 WG List: 717 Editor: Haomian Zheng 718 720 Editor: Italo Busi 721 723 Editor: Sergio Belotti 724 726 Editor: Victor Lopez 727 729 Editor: Yunbin Xu 730 "; 732 description 733 "This module defines a model for OTN Tunnel Services. 735 The model fully conforms to the Network Management 736 Datastore Architecture (NMDA). 738 Copyright (c) 2021 IETF Trust and the persons 739 identified as authors of the code. All rights reserved. 741 Redistribution and use in source and binary forms, with or 742 without modification, is permitted pursuant to, and subject 743 to the license terms contained in, the Simplified BSD License 744 set forth in Section 4.c of the IETF Trust's Legal Provisions 745 Relating to IETF Documents 746 (https://trustee.ietf.org/license-info). 748 This version of this YANG module is part of RFC XXXX; see 749 the RFC itself for full legal notices."; 751 revision "2021-02-10" { 752 description 753 "Initial Revision"; 754 reference 755 "RFC XXXX: OTN Tunnel YANG Model"; 756 // RFC Ed.: replace XXXX with actual RFC number, update date 757 // information and remove this note 758 } 760 /* 761 * Data nodes 762 */ 764 /* 765 * Augment TE bandwidth 766 */ 768 /* Augment bandwidth of named-path-constraints */ 769 augment "/te:te/te:globals/te:named-path-constraints/" 770 + "te:named-path-constraint/" 771 + "te:te-bandwidth/te:technology" { 772 description "OTN bandwidth."; 773 case otn { 774 uses l1-types:otn-path-bandwidth; 775 } 776 } 778 /* Augment bandwdith of tunnel */ 779 augment "/te:te/te:tunnels/te:tunnel/" 780 + "te:te-bandwidth/te:technology" { 781 description "OTN bandwidth."; 782 case otn { 783 uses l1-types:otn-path-bandwidth; 784 } 785 } 787 /* Augment bandwidth of primary path */ 788 augment "/te:te/te:tunnels/te:tunnel/" 789 + "te:p2p-primary-paths/te:p2p-primary-path/" 790 + "te:te-bandwidth/te:technology" { 791 description "OTN bandwidth."; 792 case otn { 793 uses l1-types:otn-path-bandwidth; 794 } 795 } 797 /* Augment bandwidth of reverse primary path */ 798 augment "/te:te/te:tunnels/te:tunnel/" 799 + "te:p2p-primary-paths/te:p2p-primary-path/" 800 + "te:p2p-primary-reverse-path/" 801 + "te:te-bandwidth/te:technology" { 802 description "OTN bandwidth."; 803 case otn { 804 uses l1-types:otn-path-bandwidth; 805 } 806 } 808 /* Augment bandwidth of secondary path */ 809 augment "/te:te/te:tunnels/te:tunnel/" 810 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 811 + "te:te-bandwidth/te:technology" { 812 description "OTN bandwidth."; 813 case otn { 814 uses l1-types:otn-path-bandwidth; 815 } 816 } 818 /* 819 * Augment TE label. 820 */ 822 /* Augment label hop of route-object-exclude-always of 823 named-path-constraints */ 824 augment "/te:te/te:globals/te:named-path-constraints/" 825 + "te:named-path-constraint/" 826 + "te:explicit-route-objects-always/" 827 + "te:route-object-exclude-always/te:type/te:label/" 828 + "te:label-hop/te:te-label/te:technology" { 829 description "OTN label."; 830 case otn { 831 uses l1-types:otn-label-hop; 832 } 833 } 835 /* Augment label hop of route-object-include-exclude of 836 named-path-constraints */ 837 augment "/te:te/te:globals/te:named-path-constraints/" 838 + "te:named-path-constraint/" 839 + "te:explicit-route-objects-always/" 840 + "te:route-object-include-exclude/te:type/te:label/" 841 + "te:label-hop/te:te-label/te:technology" { 842 description "OTN label."; 843 case otn { 844 uses l1-types:otn-label-hop; 845 } 846 } 848 /* Augment label restrictions for the forwarding direction of 849 path-in-segment of named-path-constraints */ 850 augment "/te:te/te:globals/te:named-path-constraints/" 851 + "te:named-path-constraint/te:path-in-segment/" 852 + "te:label-restrictions/te:label-restriction" { 853 description "OTN label."; 854 uses l1-types:otn-label-range-info; 855 } 857 /* Augment label restrictions start for the forwarding direction of 858 path-in-segment of named-path-constraints */ 859 augment "/te:te/te:globals/te:named-path-constraints/" 860 + "te:named-path-constraint/te:path-in-segment/" 861 + "te:label-restrictions/" 862 + "te:label-restriction/te:label-start/" 863 + "te:te-label/te:technology" { 864 description "OTN label."; 865 case otn { 866 uses l1-types:otn-label-start-end; 867 } 868 } 870 /* Augment label restrictions end for the forwarding direction of 871 path-in-segment of named-path-constraints */ 872 augment "/te:te/te:globals/te:named-path-constraints/" 873 + "te:named-path-constraint/te:path-in-segment/" 874 + "te:label-restrictions/" 875 + "te:label-restriction/te:label-end/" 876 + "te:te-label/te:technology" { 877 description "OTN label."; 878 case otn { 879 uses l1-types:otn-label-start-end; 880 } 881 } 883 /* Augment label restrictions for the forwarding direction of 884 path-out-segment of named-path-constraints */ 885 augment "/te:te/te:globals/te:named-path-constraints/" 886 + "te:named-path-constraint/te:path-out-segment/" 887 + "te:label-restrictions/" 888 + "te:label-restriction" { 889 description "OTN label."; 890 uses l1-types:otn-label-range-info; 891 } 893 /* Augment label restrictions start for the forwarding direction of 894 path-out-segment of named-path-constraints */ 895 augment "/te:te/te:globals/te:named-path-constraints/" 896 + "te:named-path-constraint/te:path-out-segment/" 897 + "te:label-restrictions/" 898 + "te:label-restriction/te:label-start/" 899 + "te:te-label/te:technology" { 900 description "OTN label."; 901 case otn { 902 uses l1-types:otn-label-start-end; 903 } 904 } 906 /* Augment label restrictions end for the forwarding direction of 907 path-out-segment of named-path-constraints */ 908 augment "/te:te/te:globals/te:named-path-constraints/" 909 + "te:named-path-constraint/te:path-out-segment/" 910 + "te:label-restrictions/" 911 + "te:label-restriction/te:label-end/" 912 + "te:te-label/te:technology" { 913 description "OTN label."; 914 case otn { 915 uses l1-types:otn-label-start-end; 916 } 917 } 919 /* Augment label hop of route-exclude of primary path */ 920 augment "/te:te/te:tunnels/te:tunnel/" 921 + "te:p2p-primary-paths/te:p2p-primary-path/" 922 + "te:optimizations/te:algorithm/te:metric/" 923 + "te:optimization-metric/te:explicit-route-exclude-objects/" 924 + "te:route-object-exclude-object/te:type/te:label/" 925 + "te:label-hop/te:te-label/te:technology" { 926 description "OTN label."; 927 case otn { 928 uses l1-types:otn-label-hop; 929 } 930 } 932 /* Augment label hop of route-include of primary path */ 933 augment "/te:te/te:tunnels/te:tunnel/" 934 + "te:p2p-primary-paths/te:p2p-primary-path/" 935 + "te:optimizations/te:algorithm/te:metric/" 936 + "te:optimization-metric/te:explicit-route-include-objects/" 937 + "te:route-object-include-object/te:type/te:label/" 938 + "te:label-hop/te:te-label/te:technology" { 939 description "OTN label."; 940 case otn { 941 uses l1-types:otn-label-hop; 942 } 943 } 945 /* Augment label hop of route-object-exclude-always of 946 primary path */ 947 augment "/te:te/te:tunnels/te:tunnel/" 948 + "te:p2p-primary-paths/te:p2p-primary-path/" 949 + "te:explicit-route-objects-always/" 950 + "te:route-object-exclude-always/te:type/te:label/" 951 + "te:label-hop/te:te-label/te:technology" { 952 description "OTN label."; 953 case otn { 954 uses l1-types:otn-label-hop; 955 } 956 } 957 /* Augment label hop of route-object-include-exclude of 958 primary path */ 959 augment "/te:te/te:tunnels/te:tunnel/" 960 + "te:p2p-primary-paths/te:p2p-primary-path/" 961 + "te:explicit-route-objects-always/" 962 + "te:route-object-include-exclude/te:type/te:label/" 963 + "te:label-hop/te:te-label/te:technology" { 964 description "OTN label."; 965 case otn { 966 uses l1-types:otn-label-hop; 967 } 968 } 970 /* Augment label restrictions for the path-in-segment of 971 primary path */ 972 augment "/te:te/te:tunnels/te:tunnel/" 973 + "te:p2p-primary-paths/te:p2p-primary-path/" 974 + "te:path-in-segment/te:label-restrictions/" 975 + "te:label-restriction" { 976 description "OTN label."; 977 uses l1-types:otn-label-range-info; 978 } 980 /* Augment label restrictions start for the forwarding direction of 981 path-in-segment of primary path */ 982 augment "/te:te/te:tunnels/te:tunnel/" 983 + "te:p2p-primary-paths/te:p2p-primary-path/" 984 + "te:path-in-segment/te:label-restrictions/" 985 + "te:label-restriction/te:label-start/" 986 + "te:te-label/te:technology" { 987 description "OTN label."; 988 case otn { 989 uses l1-types:otn-label-start-end; 990 } 991 } 993 /* Augment label restrictions end for the forwarding direction of 994 path-in-segment of primary path */ 995 augment "/te:te/te:tunnels/te:tunnel/" 996 + "te:p2p-primary-paths/te:p2p-primary-path/" 997 + "te:path-in-segment/te:label-restrictions/" 998 + "te:label-restriction/te:label-end/" 999 + "te:te-label/te:technology" { 1000 description "OTN label."; 1001 case otn { 1002 uses l1-types:otn-label-start-end; 1003 } 1004 } 1005 /* Augment label restrictions for the forwarding direction of 1006 path-out-segment of primary path */ 1007 augment "/te:te/te:tunnels/te:tunnel/" 1008 + "te:p2p-primary-paths/te:p2p-primary-path/" 1009 + "te:path-out-segment/te:label-restrictions/" 1010 + "te:label-restriction" { 1011 description "OTN label."; 1012 uses l1-types:otn-label-range-info; 1013 } 1015 /* Augment label restrictions start for the forwarding direction of 1016 path-out-segment of primary path */ 1017 augment "/te:te/te:tunnels/te:tunnel/" 1018 + "te:p2p-primary-paths/te:p2p-primary-path/" 1019 + "te:path-out-segment/te:label-restrictions/" 1020 + "te:label-restriction/te:label-start/" 1021 + "te:te-label/te:technology" { 1022 description "OTN label."; 1023 case otn { 1024 uses l1-types:otn-label-start-end; 1025 } 1026 } 1028 /* Augment label restrictions end for the forwarding direction of 1029 path-out-segment of primary path */ 1030 augment "/te:te/te:tunnels/te:tunnel/" 1031 + "te:p2p-primary-paths/te:p2p-primary-path/" 1032 + "te:path-out-segment/te:label-restrictions/" 1033 + "te:label-restriction/te:label-end/" 1034 + "te:te-label/te:technology" { 1035 description "OTN label."; 1036 case otn { 1037 uses l1-types:otn-label-start-end; 1038 } 1039 } 1041 /* Augment label hop of path-route of primary path */ 1042 augment "/te:te/te:tunnels/te:tunnel/" 1043 + "te:p2p-primary-paths/te:p2p-primary-path/" 1044 + "te:computed-paths-properties/" 1045 + "te:computed-path-properties/te:path-properties/" 1046 + "te:path-route-objects/te:path-computed-route-object/" 1047 + "te:type/te:label/" 1048 + "te:label-hop/te:te-label/te:technology" { 1049 description "OTN label."; 1050 case otn { 1051 uses l1-types:otn-label-hop; 1052 } 1054 } 1056 /* Augment label hop of record-route of primary LSP */ 1057 augment "/te:te/te:tunnels/te:tunnel/" 1058 + "te:p2p-primary-paths/te:p2p-primary-path/" 1059 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1060 + "te:lsp-record-route-information/te:type/te:label/" 1061 + "te:label-hop/te:te-label/te:technology" { 1062 description "OTN label."; 1063 case otn { 1064 uses l1-types:otn-label-hop; 1065 } 1066 } 1068 /* Augment label hop of path-route of primary LSP */ 1069 augment "/te:te/te:tunnels/te:tunnel/" 1070 + "te:p2p-primary-paths/te:p2p-primary-path/" 1071 + "te:lsps/te:lsp/te:path-properties/" 1072 + "te:path-route-objects/te:path-computed-route-object/" 1073 + "te:type/te:label/" 1074 + "te:label-hop/te:te-label/te:technology" { 1075 description "OTN label."; 1076 case otn { 1077 uses l1-types:otn-label-hop; 1078 } 1079 } 1081 /* Augment label hop of route-exclude of reverse primary path */ 1082 augment "/te:te/te:tunnels/te:tunnel/" 1083 + "te:p2p-primary-paths/te:p2p-primary-path/" 1084 + "te:p2p-primary-reverse-path/" 1085 + "te:optimizations/te:algorithm/te:metric/" 1086 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1087 + "te:route-object-exclude-object/te:type/te:label/" 1088 + "te:label-hop/te:te-label/te:technology" { 1089 description "OTN label."; 1090 case otn { 1091 uses l1-types:otn-label-hop; 1092 } 1093 } 1095 /* Augment label hop of route-include of reverse primary path */ 1096 augment "/te:te/te:tunnels/te:tunnel/" 1097 + "te:p2p-primary-paths/te:p2p-primary-path/" 1098 + "te:p2p-primary-reverse-path/" 1099 + "te:optimizations/te:algorithm/te:metric/" 1100 + "te:optimization-metric/te:explicit-route-include-objects/" 1101 + "te:route-object-include-object/te:type/te:label/" 1102 + "te:label-hop/te:te-label/te:technology" { 1103 description "OTN label."; 1104 case otn { 1105 uses l1-types:otn-label-hop; 1106 } 1107 } 1109 /* Augment label hop of route-object-exclude-always of 1110 reverse primary path */ 1111 augment "/te:te/te:tunnels/te:tunnel/" 1112 + "te:p2p-primary-paths/te:p2p-primary-path/" 1113 + "te:p2p-primary-reverse-path/" 1114 + "te:explicit-route-objects-always/" 1115 + "te:route-object-exclude-always/" 1116 + "te:type/te:label/" 1117 + "te:label-hop/te:te-label/te:technology" { 1118 description "OTN label."; 1119 case otn { 1120 uses l1-types:otn-label-hop; 1121 } 1122 } 1124 /* Augment label hop of route-object-include-exclude of 1125 reverse primary path */ 1126 augment "/te:te/te:tunnels/te:tunnel/" 1127 + "te:p2p-primary-paths/te:p2p-primary-path/" 1128 + "te:p2p-primary-reverse-path/" 1129 + "te:explicit-route-objects-always/" 1130 + "te:route-object-include-exclude/" 1131 + "te:type/te:label/" 1132 + "te:label-hop/te:te-label/te:technology" { 1133 description "OTN label."; 1134 case otn { 1135 uses l1-types:otn-label-hop; 1136 } 1137 } 1139 /* Augment label restrictions for the forwarding direction of 1140 path-in-segment of reverse primary path */ 1141 augment "/te:te/te:tunnels/te:tunnel/" 1142 + "te:p2p-primary-paths/te:p2p-primary-path/" 1143 + "te:p2p-primary-reverse-path/" 1144 + "te:path-in-segment/te:label-restrictions/" 1145 + "te:label-restriction" { 1146 description "OTN label."; 1147 uses l1-types:otn-label-range-info; 1148 } 1149 /* Augment label restrictions start for the forwarding direction of 1150 path-in-segment of reverse primary path */ 1151 augment "/te:te/te:tunnels/te:tunnel/" 1152 + "te:p2p-primary-paths/te:p2p-primary-path/" 1153 + "te:p2p-primary-reverse-path/" 1154 + "te:path-in-segment/te:label-restrictions/" 1155 + "te:label-restriction/te:label-start/" 1156 + "te:te-label/te:technology" { 1157 description "OTN label."; 1158 case otn { 1159 uses l1-types:otn-label-start-end; 1160 } 1161 } 1163 /* Augment label restrictions end for the forwarding direction of 1164 path-in-segment of reverse primary path */ 1165 augment "/te:te/te:tunnels/te:tunnel/" 1166 + "te:p2p-primary-paths/te:p2p-primary-path/" 1167 + "te:p2p-primary-reverse-path/" 1168 + "te:path-in-segment/te:label-restrictions/" 1169 + "te:label-restriction/te:label-end/" 1170 + "te:te-label/te:technology" { 1171 description "OTN label."; 1172 case otn { 1173 uses l1-types:otn-label-start-end; 1174 } 1175 } 1177 /* Augment label restrictions for the forwarding direction of 1178 path-out-segment of reverse primary path */ 1179 augment "/te:te/te:tunnels/te:tunnel/" 1180 + "te:p2p-primary-paths/te:p2p-primary-path/" 1181 + "te:p2p-primary-reverse-path/" 1182 + "te:path-out-segment/te:label-restrictions/" 1183 + "te:label-restriction" { 1184 description "OTN label."; 1185 uses l1-types:otn-label-range-info; 1186 } 1188 /* Augment label restrictions start for the forwarding direction of 1189 path-out-segment of reverse primary path */ 1190 augment "/te:te/te:tunnels/te:tunnel/" 1191 + "te:p2p-primary-paths/te:p2p-primary-path/" 1192 + "te:p2p-primary-reverse-path/" 1193 + "te:path-out-segment/te:label-restrictions/" 1194 + "te:label-restriction/te:label-start/" 1195 + "te:te-label/te:technology" { 1196 description "OTN label."; 1197 case otn { 1198 uses l1-types:otn-label-start-end; 1199 } 1200 } 1202 /* Augment label restrictions end for the forwarding direction of 1203 path-out-segment of reverse primary path */ 1204 augment "/te:te/te:tunnels/te:tunnel/" 1205 + "te:p2p-primary-paths/te:p2p-primary-path/" 1206 + "te:p2p-primary-reverse-path/" 1207 + "te:path-out-segment/te:label-restrictions/" 1208 + "te:label-restriction/te:label-end/" 1209 + "te:te-label/te:technology" { 1210 description "OTN label."; 1211 case otn { 1212 uses l1-types:otn-label-start-end; 1213 } 1214 } 1216 /* Augment label hop of path-route of reverse primary path */ 1217 augment "/te:te/te:tunnels/te:tunnel/" 1218 + "te:p2p-primary-paths/te:p2p-primary-path/" 1219 + "te:p2p-primary-reverse-path/" 1220 + "te:computed-paths-properties/te:computed-path-properties/" 1221 + "te:path-properties/te:path-route-objects/" 1222 + "te:path-computed-route-object/te:type/te:label/" 1223 + "te:label-hop/te:te-label/te:technology" { 1224 description "OTN label."; 1225 case otn { 1226 uses l1-types:otn-label-hop; 1227 } 1228 } 1230 /* Augment label hop of record-route of reverse primary LSP */ 1231 augment "/te:te/te:tunnels/te:tunnel/" 1232 + "te:p2p-primary-paths/te:p2p-primary-path/" 1233 + "te:p2p-primary-reverse-path/" 1234 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1235 + "te:lsp-record-route-information/te:type/te:label/" 1236 + "te:label-hop/te:te-label/te:technology" { 1237 description "OTN label."; 1238 case otn { 1239 uses l1-types:otn-label-hop; 1240 } 1241 } 1243 /* Augment label hop of path-route of reverse primary LSP */ 1244 augment "/te:te/te:tunnels/te:tunnel/" 1245 + "te:p2p-primary-paths/te:p2p-primary-path/" 1246 + "te:p2p-primary-reverse-path/" 1247 + "te:lsps/te:lsp/te:path-properties/" 1248 + "te:path-route-objects/te:path-computed-route-object/" 1249 + "te:type/te:label/" 1250 + "te:label-hop/te:te-label/te:technology" { 1251 description "OTN label."; 1252 case otn { 1253 uses l1-types:otn-label-hop; 1254 } 1255 } 1257 /* Augment label hop of route-exclude of secondary path */ 1258 augment "/te:te/te:tunnels/te:tunnel/" 1259 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1260 + "te:optimizations/te:algorithm/te:metric/" 1261 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1262 + "te:route-object-exclude-object/te:type/te:label/" 1263 + "te:label-hop/te:te-label/te:technology" { 1264 description "OTN label."; 1265 case otn { 1266 uses l1-types:otn-label-hop; 1267 } 1268 } 1270 /* Augment label hop of route-include of secondary path */ 1271 augment "/te:te/te:tunnels/te:tunnel/" 1272 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1273 + "te:optimizations/te:algorithm/te:metric/" 1274 + "te:optimization-metric/te:explicit-route-include-objects/" 1275 + "te:route-object-include-object/te:type/te:label/" 1276 + "te:label-hop/te:te-label/te:technology" { 1277 description "OTN label."; 1278 case otn { 1279 uses l1-types:otn-label-hop; 1280 } 1281 } 1283 /* Augment label hop of route-object-exclude-always of 1284 secondary path */ 1285 augment "/te:te/te:tunnels/te:tunnel/" 1286 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1287 + "te:explicit-route-objects-always/" 1288 + "te:route-object-exclude-always/te:type/te:label/" 1289 + "te:label-hop/te:te-label/te:technology" { 1290 description "OTN label."; 1291 case otn { 1292 uses l1-types:otn-label-hop; 1294 } 1295 } 1297 /* Augment label hop of route-object-include-exclude of 1298 secondary path */ 1299 augment "/te:te/te:tunnels/te:tunnel/" 1300 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1301 + "te:explicit-route-objects-always/" 1302 + "te:route-object-include-exclude/te:type/te:label/" 1303 + "te:label-hop/te:te-label/te:technology" { 1304 description "OTN label."; 1305 case otn { 1306 uses l1-types:otn-label-hop; 1307 } 1308 } 1310 /* Augment label restrictions for the forwarding direction of 1311 path-in-segment of secondary path */ 1312 augment "/te:te/te:tunnels/te:tunnel/" 1313 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1314 + "te:path-in-segment/te:label-restrictions/" 1315 + "te:label-restriction" { 1316 description "OTN label."; 1317 uses l1-types:otn-label-range-info; 1318 } 1320 /* Augment label restrictions start for the forwarding direction of 1321 path-in-segment of secondary path */ 1322 augment "/te:te/te:tunnels/te:tunnel/" 1323 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1324 + "te:path-in-segment/te:label-restrictions/" 1325 + "te:label-restriction/te:label-start/" 1326 + "te:te-label/te:technology" { 1327 description "OTN label."; 1328 case otn { 1329 uses l1-types:otn-label-start-end; 1330 } 1331 } 1333 /* Augment label restrictions end for the forwarding direction of 1334 path-in-segment of secondary path */ 1335 augment "/te:te/te:tunnels/te:tunnel/" 1336 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1337 + "te:path-in-segment/te:label-restrictions/" 1338 + "te:label-restriction/te:label-end/" 1339 + "te:te-label/te:technology" { 1340 description "OTN label."; 1341 case otn { 1342 uses l1-types:otn-label-start-end; 1343 } 1344 } 1346 /* Augment label restrictions for the forwarding direction of 1347 path-out-segment of secondary path */ 1348 augment "/te:te/te:tunnels/te:tunnel/" 1349 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1350 + "te:path-out-segment/te:label-restrictions/" 1351 + "te:label-restriction" { 1352 description "OTN label."; 1353 uses l1-types:otn-label-range-info; 1354 } 1356 /* Augment label restrictions start for the forwarding direction of 1357 path-out-segment of secondary path */ 1358 augment "/te:te/te:tunnels/te:tunnel/" 1359 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1360 + "te:path-out-segment/te:label-restrictions/" 1361 + "te:label-restriction/te:label-start/" 1362 + "te:te-label/te:technology" { 1363 description "OTN label."; 1364 case otn { 1365 uses l1-types:otn-label-start-end; 1366 } 1367 } 1369 /* Augment label restrictions end for the forwarding direction of 1370 path-out-segment of secondary path */ 1371 augment "/te:te/te:tunnels/te:tunnel/" 1372 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1373 + "te:path-out-segment/te:label-restrictions/" 1374 + "te:label-restriction/te:label-end/" 1375 + "te:te-label/te:technology" { 1376 description "OTN label."; 1377 case otn { 1378 uses l1-types:otn-label-start-end; 1379 } 1380 } 1382 /* Augment label hop of path-route of secondary path */ 1383 augment "/te:te/te:tunnels/te:tunnel/" 1384 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1385 + "te:computed-paths-properties/" 1386 + "te:computed-path-properties/" 1387 + "te:path-properties/te:path-route-objects/" 1388 + "te:path-computed-route-object/te:type/te:label/" 1389 + "te:label-hop/te:te-label/te:technology" { 1391 description "OTN label."; 1392 case otn { 1393 uses l1-types:otn-label-hop; 1394 } 1395 } 1397 /* Augment label hop of record-route of secondary LSP */ 1398 augment "/te:te/te:tunnels/te:tunnel/" 1399 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1400 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1401 + "te:lsp-record-route-information/te:type/te:label/" 1402 + "te:label-hop/te:te-label/te:technology" { 1403 description "OTN label."; 1404 case otn { 1405 uses l1-types:otn-label-hop; 1406 } 1407 } 1409 /* Augment label hop of path-route of secondary LSP */ 1410 augment "/te:te/te:tunnels/te:tunnel/" 1411 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1412 + "te:lsps/te:lsp/te:path-properties/" 1413 + "te:path-route-objects/" 1414 + "te:path-computed-route-object/te:type/te:label/" 1415 + "te:label-hop/te:te-label/te:technology" { 1416 description "OTN label."; 1417 case otn { 1418 uses l1-types:otn-label-hop; 1419 } 1420 } 1422 /* Augment label hop of record-route of LSP */ 1423 augment "/te:te/te:lsps-state/" 1424 + "te:lsp/te:lsp-record-route-information/" 1425 + "te:lsp-record-route-information/te:type/te:label/" 1426 + "te:label-hop/te:te-label/te:technology" { 1427 description "OTN label."; 1428 case otn { 1429 uses l1-types:otn-label-hop; 1430 } 1431 } 1432 } 1433 1435 6. Security Considerations 1437 The YANG module specified in this document defines a schema for data 1438 that is designed to be accessed via network management protocols such 1439 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1440 is the secure transport layer, and the mandatory-to-implement secure 1441 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1442 is HTTPS, and the mandatory-to-implement secure transport is TLS 1443 [RFC8446]. 1445 The NETCONF access control model [RFC8341] provides the means to 1446 restrict access for particular NETCONF or RESTCONF users to a 1447 preconfigured subset of all available NETCONF or RESTCONF protocol 1448 operations and content. 1450 There are a number of data nodes defined in this YANG module that are 1451 writable/creatable/deletable (i.e., config true, which is the 1452 default). These data nodes may be considered sensitive or vulnerable 1453 in some network environments. Write operations (e.g., edit-config) 1454 to these data nodes without proper protection can have a negative 1455 effect on network operations. Considerations in Section 10 of 1456 [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the 1457 module defined in this document. 1459 Some of the readable data nodes in this YANG module may be considered 1460 sensitive or vulnerable in some network environments. It is thus 1461 important to control read access (e.g., via get, get-config, or 1462 notification) to these data nodes. Considerations in Section 10 of 1463 [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the 1464 module defined in this document. 1466 7. IANA Considerations 1468 It is proposed that IANA should assign new URIs from the "IETF XML 1469 Registry" [RFC3688] as follows: 1471 URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel 1472 Registrant Contact: The IESG 1473 XML: N/A; the requested URI is an XML namespace. 1475 This document registers following YANG modules in the YANG Module 1476 Names registry [RFC7950]. 1478 name: ietf-otn-tunnel 1479 namespace: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel 1480 prefix: otn-tunnel 1481 reference: RFC XXXX 1483 8. Acknowledgements 1485 TBD. 1487 9. Contributors 1489 Aihua Guo 1490 Futurewei 1491 Email: aihuaguo.ietf@gmail.com 1493 Anurag Sharma 1494 Google 1495 Email: ansha@google.com 1497 Rajan Rao 1498 Infinera 1499 Email: rrao@infinera.com 1501 Yunbo Li 1502 China Mobile 1503 Email: liyunbo@chinamobile.com 1505 Dieter Beller 1506 Nokia 1507 Email: dieter.beller@nokia.com 1509 Yanlei Zheng 1510 China Unicom 1511 Email: zhengyanlei@chinaunicom.cn 1513 Xian Zhang 1514 Huawei Technologies 1515 Email: zhang.xian@huawei.com 1517 Lei Wang 1518 China Mobile 1519 Email: wangleiyj@chinamobile.com 1521 Oscar Gonzalez de Dios 1522 Telefonica 1523 Email: oscar.gonzalezdedios@telefonica.com 1525 10. References 1527 10.1. Normative References 1529 [I-D.ietf-ccamp-layer1-types] 1530 Zheng, H. and I. Busi, "A YANG Data Model for Layer 1 1531 Types", draft-ietf-ccamp-layer1-types-08 (work in 1532 progress), November 2020. 1534 [I-D.ietf-ccamp-otn-topo-yang] 1535 Zheng, H., Busi, I., Liu, X., Belotti, S., and O. Dios, "A 1536 YANG Data Model for Optical Transport Network Topology", 1537 draft-ietf-ccamp-otn-topo-yang-11 (work in progress), 1538 September 2020. 1540 [I-D.ietf-teas-yang-te] 1541 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 1542 "A YANG Data Model for Traffic Engineering Tunnels, Label 1543 Switched Paths and Interfaces", draft-ietf-teas-yang-te-25 1544 (work in progress), July 2020. 1546 [ITU-Tg709] 1547 International Telecommunication Union, "Interfaces for the 1548 optical transport network", ITU-T G.709, March 2020. 1550 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1551 DOI 10.17487/RFC3688, January 2004, 1552 . 1554 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1555 and A. Bierman, Ed., "Network Configuration Protocol 1556 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1557 . 1559 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1560 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1561 . 1563 [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., 1564 and K. Pithewan, "GMPLS Signaling Extensions for Control 1565 of Evolving G.709 Optical Transport Networks", RFC 7139, 1566 DOI 10.17487/RFC7139, March 2014, 1567 . 1569 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1570 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1571 . 1573 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1574 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1575 . 1577 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 1578 Access Control Model", STD 91, RFC 8341, 1579 DOI 10.17487/RFC8341, March 2018, 1580 . 1582 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1583 and R. Wilton, "Network Management Datastore Architecture 1584 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1585 . 1587 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1588 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1589 . 1591 10.2. Informative References 1593 [I-D.ietf-ccamp-transport-nbi-app-statement] 1594 Busi, I., King, D., Zheng, H., and Y. Xu, "Transport 1595 Northbound Interface Applicability Statement", draft-ietf- 1596 ccamp-transport-nbi-app-statement-12 (work in progress), 1597 January 2021. 1599 [I-D.ietf-teas-actn-yang] 1600 Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., 1601 Shin, J., and S. Belotti, "Applicability of YANG models 1602 for Abstraction and Control of Traffic Engineered 1603 Networks", draft-ietf-teas-actn-yang-06 (work in 1604 progress), August 2020. 1606 [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. 1607 Ceccarelli, "Framework for GMPLS and PCE Control of G.709 1608 Optical Transport Networks", RFC 7062, 1609 DOI 10.17487/RFC7062, November 2013, 1610 . 1612 [RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and 1613 J. Drake, "Traffic Engineering Extensions to OSPF for 1614 GMPLS Control of Evolving G.709 Optical Transport 1615 Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014, 1616 . 1618 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1619 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1620 . 1622 Authors' Addresses 1624 Haomian Zheng 1625 Huawei Technologies 1626 H1, Huawei Xiliu Beipo Village, Songshan Lake 1627 Dongguan, Guangdong 523808 1628 China 1630 Email: zhenghaomian@huawei.com 1632 Italo Busi 1633 Huawei Technologies 1634 HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2 1635 Milan, Milan 20090 1636 Italy 1638 Email: Italo.Busi@huawei.com 1640 Sergio Belotti 1641 Nokia 1643 Email: sergio.belotti@nokia.com 1645 Victor Lopez 1646 Telefonica 1648 Email: victor.lopezalvarez@telefonica.com 1650 Yunbin Xu 1651 CAICT 1653 Email: xuyunbin@caict.ac.cn