idnits 2.17.1 draft-ietf-ccamp-otn-tunnel-model-13.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 191 has weird spacing: '...ad-rate uin...' == Line 209 has weird spacing: '...ad-rate uin...' == Line 228 has weird spacing: '...ad-rate uin...' == Line 248 has weird spacing: '...ad-rate uin...' == Line 267 has weird spacing: '...ad-rate uin...' -- The document date (April 12, 2021) is 1107 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) == Unused Reference: 'RFC7062' is defined on line 1627, but no explicit reference was found in the text == Unused Reference: 'RFC7138' is defined on line 1633, but no explicit reference was found in the text == Outdated reference: A later version (-18) exists of draft-ietf-ccamp-layer1-types-08 == Outdated reference: A later version (-18) 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 (~~), 13 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: October 14, 2021 S. Belotti 6 Nokia 7 V. Lopez 8 Telefonica 9 Y. Xu 10 CAICT 11 April 12, 2021 13 OTN Tunnel YANG Model 14 draft-ietf-ccamp-otn-tunnel-model-13 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 October 14, 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. Bandwidth Augmentation . . . . . . . . . . . . . . . . . 4 64 3.3. Label Augmentation . . . . . . . . . . . . . . . . . . . 4 65 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 66 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 15 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 31 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 69 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 70 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32 71 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 72 10.1. Normative References . . . . . . . . . . . . . . . . . . 33 73 10.2. Informative References . . . . . . . . . . . . . . . . . 34 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 76 1. Introduction 78 OTN transport networks, specified in [ITU-Tg709], can carry various 79 types of client signals. In many cases, the client signal is carried 80 over an OTN tunnel across connected domains in a multi-domain 81 network. 83 This document provides YANG model for creating OTN tunnel. The model 84 augments the generic TE Tunnel model specified in 85 [I-D.ietf-teas-yang-te]. 87 2. Terminology and Notations 89 A simplified graphical representation of the data model is used in 90 this document. The meaning of the symbols in the YANG data tree 91 presented later in this draft is defined in [RFC8340]. They are 92 provided below for reference. 94 o Brackets "[" and "]" enclose list keys. 96 o Abbreviations before data node names: "rw" means configuration 97 (read-write) and "ro" state data (read-only). 99 o Symbols after data node names: "?" means an optional node, "!" 100 means a presence container, and "*" denotes a list and leaf-list. 102 o Parentheses enclose choice and case nodes, and case nodes are also 103 marked with a colon (":"). 105 o Ellipsis ("...") stands for contents of subtrees that are not 106 shown. 108 o More OTN specific terms can be found in 109 [I-D.ietf-ccamp-otn-topo-yang]. 111 3. OTN Tunnel Model Description 113 3.1. Overview of OTN Tunnel Model 115 This document aims to describe the data model for OTN tunnel. The 116 OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a 117 basic model and augments it with OTN-specific parameters, including 118 the bandwidth information and label information. Figure 1 shows the 119 augmentation relationship. 121 +----------------+ 122 TE generic | ietf-te | 123 +----------------+ 124 ^ 125 | 126 | Augments 127 | 128 +--------+--------+ 129 OTN | ietf-otn-tunnel | 130 +-----------------+ 131 Figure 1 - Relationship between OTN and TE tunnel models 133 It is also worth noting that the OTN tunnel provisioning is usually 134 based on the OTN topology. Therefore the OTN tunnel model is usually 135 used together with OTN topology model specified in 136 [I-D.ietf-ccamp-otn-topo-yang]. The OTN tunnel model also imports a 137 few type modules, including ietf-layer1-types, ietf-te-types and 138 ietf-inet-types. The OTN-specific attributes in [RFC7139], including 139 the Tributary Slot (TS) and Tributary Port Number (TPN), can be used 140 to represent the bandwidth and label information. These attributes 141 have been specified in [I-D.ietf-ccamp-layer1-types] and used in this 142 document for augmentation of the generic TE tunnel model. 144 More scenarios and model applications can be found in 145 [I-D.ietf-ccamp-transport-nbi-app-statement] and 146 [I-D.ietf-teas-actn-yang]. 148 The YANG module ietf-otn-tunnel defined in this document conforms to 149 the Network Management Datastore Architecture (NMDA) defined in 150 [RFC8342]. 152 3.2. Bandwidth Augmentation 154 The model augments all the occurrences of the te-bandwidth container 155 with the OTN technology specific attributes using the otn-link- 156 bandwidth and otn-path-bandwidth groupings defined in 157 [I-D.ietf-ccamp-layer1-types]. 159 3.3. Label Augmentation 161 The model augments all the occurrences of the label-restriction list 162 with OTN technology specific attributes using the otn-label-range- 163 info grouping defined in [I-D.ietf-ccamp-layer1-types]. 165 Moreover, the model augments all the occurrences of the te-label 166 container with the OTN technology specific attributes using the otn- 167 label-start-end, otn-label-hop and otn-label-step groupings defined 168 in [I-D.ietf-ccamp-layer1-types]. 170 4. OTN Tunnel YANG Tree 172 module: ietf-otn-tunnel 173 augment /te:te/te:globals/te:named-path-constraints 174 /te:named-path-constraint/te:te-bandwidth/te:technology: 175 +--:(otn) 176 +--rw otn 177 +--rw odu-type? identityref 178 +--rw (oduflex-type)? 179 +--:(generic) 180 | +--rw nominal-bit-rate uint64 181 +--:(cbr) 182 | +--rw client-type identityref 183 +--:(gfp-n-k) 184 | +--rw gfp-n uint8 185 | +--rw gfp-k? gfp-k 186 +--:(flexe-client) 187 | +--rw flexe-client flexe-client-rate 188 +--:(flexe-aware) 189 | +--rw flexe-aware-n uint16 190 +--:(packet) 191 +--rw opuflex-payload-rate uint64 192 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: 193 +--:(otn) 194 +--rw otn 195 +--rw odu-type? identityref 196 +--rw (oduflex-type)? 197 +--:(generic) 198 | +--rw nominal-bit-rate uint64 199 +--:(cbr) 200 | +--rw client-type identityref 201 +--:(gfp-n-k) 202 | +--rw gfp-n uint8 203 | +--rw gfp-k? gfp-k 204 +--:(flexe-client) 205 | +--rw flexe-client flexe-client-rate 206 +--:(flexe-aware) 207 | +--rw flexe-aware-n uint16 208 +--:(packet) 209 +--rw opuflex-payload-rate uint64 210 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 211 /te:p2p-primary-path/te:te-bandwidth/te:technology: 212 +--:(otn) 213 +--rw otn 214 +--rw odu-type? identityref 215 +--rw (oduflex-type)? 216 +--:(generic) 217 | +--rw nominal-bit-rate uint64 218 +--:(cbr) 219 | +--rw client-type identityref 220 +--:(gfp-n-k) 221 | +--rw gfp-n uint8 222 | +--rw gfp-k? gfp-k 223 +--:(flexe-client) 224 | +--rw flexe-client flexe-client-rate 225 +--:(flexe-aware) 226 | +--rw flexe-aware-n uint16 227 +--:(packet) 228 +--rw opuflex-payload-rate uint64 229 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 230 /te:p2p-primary-path/te:p2p-primary-reverse-path 231 /te:te-bandwidth/te:technology: 232 +--:(otn) 233 +--rw otn 234 +--rw odu-type? identityref 235 +--rw (oduflex-type)? 236 +--:(generic) 237 | +--rw nominal-bit-rate uint64 238 +--:(cbr) 239 | +--rw client-type identityref 240 +--:(gfp-n-k) 241 | +--rw gfp-n uint8 242 | +--rw gfp-k? gfp-k 243 +--:(flexe-client) 244 | +--rw flexe-client flexe-client-rate 245 +--:(flexe-aware) 246 | +--rw flexe-aware-n uint16 247 +--:(packet) 248 +--rw opuflex-payload-rate uint64 249 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 250 /te:p2p-secondary-path/te:te-bandwidth/te:technology: 251 +--:(otn) 252 +--rw otn 253 +--rw odu-type? identityref 254 +--rw (oduflex-type)? 255 +--:(generic) 256 | +--rw nominal-bit-rate uint64 257 +--:(cbr) 258 | +--rw client-type identityref 259 +--:(gfp-n-k) 260 | +--rw gfp-n uint8 261 | +--rw gfp-k? gfp-k 262 +--:(flexe-client) 263 | +--rw flexe-client flexe-client-rate 264 +--:(flexe-aware) 265 | +--rw flexe-aware-n uint16 266 +--:(packet) 267 +--rw opuflex-payload-rate uint64 268 augment /te:te/te:globals/te:named-path-constraints 269 /te:named-path-constraint 270 /te:explicit-route-objects-always 271 /te:route-object-exclude-always/te:type/te:label 272 /te:label-hop/te:te-label/te:technology: 273 +--:(otn) 274 +--rw otn-tpn? otn-tpn 275 +--rw tsg? identityref 276 +--rw ts-list? string 277 augment /te:te/te:globals/te:named-path-constraints 278 /te:named-path-constraint 279 /te:explicit-route-objects-always 280 /te:route-object-include-exclude/te:type/te:label 281 /te:label-hop/te:te-label/te:technology: 282 +--:(otn) 283 +--rw otn-tpn? otn-tpn 284 +--rw tsg? identityref 285 +--rw ts-list? string 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: 289 +--rw range-type? otn-label-range-type 290 +--rw tsg? identityref 291 +--rw odu-type-list* identityref 292 +--rw priority? uint8 293 augment /te:te/te:globals/te:named-path-constraints 294 /te:named-path-constraint/te:path-in-segment 295 /te:label-restrictions/te:label-restriction 296 /te:label-start/te:te-label/te:technology: 297 +--:(otn) 298 +--rw (range-type)? 299 +--:(trib-port) 300 | +--rw otn-tpn? otn-tpn 301 +--:(trib-slot) 302 +--rw otn-ts? otn-ts 303 augment /te:te/te:globals/te:named-path-constraints 304 /te:named-path-constraint/te:path-in-segment 305 /te:label-restrictions/te:label-restriction/te:label-end 306 /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: 316 +--rw range-type? otn-label-range-type 317 +--rw tsg? identityref 318 +--rw odu-type-list* identityref 319 +--rw priority? uint8 320 augment /te:te/te:globals/te:named-path-constraints 321 /te:named-path-constraint/te:path-out-segment 322 /te:label-restrictions/te:label-restriction 323 /te:label-start/te:te-label/te:technology: 324 +--:(otn) 325 +--rw (range-type)? 326 +--:(trib-port) 327 | +--rw otn-tpn? otn-tpn 328 +--:(trib-slot) 329 +--rw otn-ts? otn-ts 330 augment /te:te/te:globals/te:named-path-constraints 331 /te:named-path-constraint/te:path-out-segment 332 /te:label-restrictions/te:label-restriction/te:label-end 333 /te:te-label/te:technology: 334 +--:(otn) 335 +--rw (range-type)? 336 +--:(trib-port) 337 | +--rw otn-tpn? otn-tpn 338 +--:(trib-slot) 339 +--rw otn-ts? otn-ts 340 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 341 /te:p2p-primary-path/te:optimizations/te:algorithm 342 /te:metric/te:optimization-metric 343 /te:explicit-route-exclude-objects 344 /te:route-object-exclude-object/te:type/te:label 345 /te:label-hop/te:te-label/te:technology: 346 +--:(otn) 347 +--rw otn-tpn? otn-tpn 348 +--rw tsg? identityref 349 +--rw ts-list? string 350 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 351 /te:p2p-primary-path/te:optimizations/te:algorithm 352 /te:metric/te:optimization-metric 353 /te:explicit-route-include-objects 354 /te:route-object-include-object/te:type/te:label 355 /te:label-hop/te:te-label/te:technology: 356 +--:(otn) 357 +--rw otn-tpn? otn-tpn 358 +--rw tsg? identityref 359 +--rw ts-list? string 360 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 361 /te:p2p-primary-path/te:explicit-route-objects-always 362 /te:route-object-exclude-always/te:type/te:label 363 /te:label-hop/te:te-label/te:technology: 364 +--:(otn) 365 +--rw otn-tpn? otn-tpn 366 +--rw tsg? identityref 367 +--rw ts-list? string 368 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 369 /te:p2p-primary-path/te:explicit-route-objects-always 370 /te:route-object-include-exclude/te:type/te:label 371 /te:label-hop/te:te-label/te:technology: 372 +--:(otn) 373 +--rw otn-tpn? otn-tpn 374 +--rw tsg? identityref 375 +--rw ts-list? string 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: 379 +--rw range-type? otn-label-range-type 380 +--rw tsg? identityref 381 +--rw odu-type-list* identityref 382 +--rw priority? uint8 383 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 384 /te:p2p-primary-path/te:path-in-segment 385 /te:label-restrictions/te:label-restriction 386 /te:label-start/te:te-label/te:technology: 387 +--:(otn) 388 +--rw (range-type)? 389 +--:(trib-port) 390 | +--rw otn-tpn? otn-tpn 391 +--:(trib-slot) 392 +--rw otn-ts? otn-ts 393 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 394 /te:p2p-primary-path/te:path-in-segment 395 /te:label-restrictions/te:label-restriction/te:label-end 396 /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: 406 +--rw range-type? otn-label-range-type 407 +--rw tsg? identityref 408 +--rw odu-type-list* identityref 409 +--rw priority? uint8 410 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 411 /te:p2p-primary-path/te:path-out-segment 412 /te:label-restrictions/te:label-restriction 413 /te:label-start/te:te-label/te:technology: 414 +--:(otn) 415 +--rw (range-type)? 416 +--:(trib-port) 417 | +--rw otn-tpn? otn-tpn 418 +--:(trib-slot) 419 +--rw otn-ts? otn-ts 420 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 421 /te:p2p-primary-path/te:path-out-segment 422 /te:label-restrictions/te:label-restriction/te:label-end 423 /te:te-label/te:technology: 424 +--:(otn) 425 +--rw (range-type)? 426 +--:(trib-port) 427 | +--rw otn-tpn? otn-tpn 428 +--:(trib-slot) 429 +--rw otn-ts? otn-ts 430 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 431 /te:p2p-primary-path/te:computed-paths-properties 432 /te:computed-path-properties/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:lsps/te:lsp 441 /te:lsp-record-route-information 442 /te:lsp-record-route-information/te:type/te:label 443 /te:label-hop/te:te-label/te:technology: 444 +--:(otn) 445 +--ro otn-tpn? otn-tpn 446 +--ro tsg? identityref 447 +--ro ts-list? string 448 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 449 /te:p2p-primary-path/te:lsps/te:lsp/te:path-properties 450 /te:path-route-objects/te:path-computed-route-object 451 /te:type/te:label/te:label-hop/te:te-label/te:technology: 452 +--:(otn) 453 +--ro otn-tpn? otn-tpn 454 +--ro tsg? identityref 455 +--ro ts-list? string 456 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 457 /te:p2p-primary-path/te:p2p-primary-reverse-path 458 /te:optimizations/te:algorithm/te:metric 459 /te:optimization-metric/te:explicit-route-exclude-objects 460 /te:route-object-exclude-object/te:type/te:label 461 /te:label-hop/te:te-label/te:technology: 462 +--:(otn) 463 +--rw otn-tpn? otn-tpn 464 +--rw tsg? identityref 465 +--rw ts-list? string 466 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 467 /te:p2p-primary-path/te:p2p-primary-reverse-path 468 /te:optimizations/te:algorithm/te:metric 469 /te:optimization-metric/te:explicit-route-include-objects 470 /te:route-object-include-object/te:type/te:label 471 /te:label-hop/te:te-label/te:technology: 472 +--:(otn) 473 +--rw otn-tpn? otn-tpn 474 +--rw tsg? identityref 475 +--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:explicit-route-objects-always 480 /te:route-object-exclude-always/te:type/te:label 481 /te:label-hop/te:te-label/te:technology: 482 +--:(otn) 483 +--rw otn-tpn? otn-tpn 484 +--rw tsg? identityref 485 +--rw ts-list? string 486 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 487 /te:p2p-primary-path/te:p2p-primary-reverse-path 488 /te:explicit-route-objects-always 489 /te:route-object-include-exclude/te:type/te:label 490 /te:label-hop/te:te-label/te:technology: 491 +--:(otn) 492 +--rw otn-tpn? otn-tpn 493 +--rw tsg? identityref 494 +--rw ts-list? string 495 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 496 /te:p2p-primary-path/te:p2p-primary-reverse-path 497 /te:path-in-segment/te:label-restrictions 498 /te:label-restriction: 499 +--rw range-type? otn-label-range-type 500 +--rw tsg? identityref 501 +--rw odu-type-list* identityref 502 +--rw priority? uint8 503 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 504 /te:p2p-primary-path/te:p2p-primary-reverse-path 505 /te:path-in-segment/te:label-restrictions 506 /te:label-restriction/te:label-start/te:te-label 507 /te:technology: 508 +--:(otn) 509 +--rw (range-type)? 510 +--:(trib-port) 511 | +--rw otn-tpn? otn-tpn 512 +--:(trib-slot) 513 +--rw otn-ts? otn-ts 514 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 515 /te:p2p-primary-path/te:p2p-primary-reverse-path 516 /te:path-in-segment/te:label-restrictions 517 /te:label-restriction/te:label-end/te:te-label 518 /te:technology: 519 +--:(otn) 520 +--rw (range-type)? 521 +--:(trib-port) 522 | +--rw otn-tpn? otn-tpn 523 +--:(trib-slot) 524 +--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: 530 +--rw range-type? otn-label-range-type 531 +--rw tsg? identityref 532 +--rw odu-type-list* identityref 533 +--rw priority? uint8 534 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 535 /te:p2p-primary-path/te:p2p-primary-reverse-path 536 /te:path-out-segment/te:label-restrictions 537 /te:label-restriction/te:label-start/te:te-label 538 /te:technology: 539 +--:(otn) 540 +--rw (range-type)? 541 +--:(trib-port) 542 | +--rw otn-tpn? otn-tpn 543 +--:(trib-slot) 544 +--rw otn-ts? otn-ts 545 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 546 /te:p2p-primary-path/te:p2p-primary-reverse-path 547 /te:path-out-segment/te:label-restrictions 548 /te:label-restriction/te:label-end/te:te-label 549 /te:technology: 550 +--:(otn) 551 +--rw (range-type)? 552 +--:(trib-port) 553 | +--rw otn-tpn? otn-tpn 554 +--:(trib-slot) 555 +--rw otn-ts? otn-ts 556 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 557 /te:p2p-primary-path/te:p2p-primary-reverse-path 558 /te:computed-paths-properties/te:computed-path-properties 559 /te:path-properties/te:path-route-objects 560 /te:path-computed-route-object/te:type/te:label 561 /te:label-hop/te:te-label/te:technology: 562 +--:(otn) 563 +--ro otn-tpn? otn-tpn 564 +--ro tsg? identityref 565 +--ro ts-list? string 566 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 567 /te:p2p-primary-path/te:p2p-primary-reverse-path/te:lsps 568 /te:lsp/te:lsp-record-route-information 569 /te:lsp-record-route-information/te:type/te:label 570 /te:label-hop/te:te-label/te:technology: 571 +--:(otn) 572 +--ro otn-tpn? otn-tpn 573 +--ro tsg? identityref 574 +--ro ts-list? string 575 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 576 /te:p2p-primary-path/te:p2p-primary-reverse-path/te:lsps 577 /te:lsp/te:path-properties/te:path-route-objects 578 /te:path-computed-route-object/te:type/te:label 579 /te:label-hop/te:te-label/te:technology: 580 +--:(otn) 581 +--ro otn-tpn? otn-tpn 582 +--ro tsg? identityref 583 +--ro ts-list? string 584 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 585 /te:p2p-secondary-path/te:optimizations/te:algorithm 586 /te:metric/te:optimization-metric 587 /te:explicit-route-exclude-objects 588 /te:route-object-exclude-object/te:type/te:label 589 /te:label-hop/te:te-label/te:technology: 590 +--:(otn) 591 +--rw otn-tpn? otn-tpn 592 +--rw tsg? identityref 593 +--rw ts-list? string 594 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 595 /te:p2p-secondary-path/te:optimizations/te:algorithm 596 /te:metric/te:optimization-metric 597 /te:explicit-route-include-objects 598 /te:route-object-include-object/te:type/te:label 599 /te:label-hop/te:te-label/te:technology: 600 +--:(otn) 601 +--rw otn-tpn? otn-tpn 602 +--rw tsg? identityref 603 +--rw ts-list? string 604 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 605 /te:p2p-secondary-path/te:explicit-route-objects-always 606 /te:route-object-exclude-always/te:type/te:label 607 /te:label-hop/te:te-label/te:technology: 608 +--:(otn) 609 +--rw otn-tpn? otn-tpn 610 +--rw tsg? identityref 611 +--rw ts-list? string 612 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 613 /te:p2p-secondary-path/te:explicit-route-objects-always 614 /te:route-object-include-exclude/te:type/te:label 615 /te:label-hop/te:te-label/te:technology: 616 +--:(otn) 617 +--rw otn-tpn? otn-tpn 618 +--rw tsg? identityref 619 +--rw ts-list? string 620 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 621 /te:p2p-secondary-path/te:path-in-segment 622 /te:label-restrictions/te:label-restriction: 623 +--rw range-type? otn-label-range-type 624 +--rw tsg? identityref 625 +--rw odu-type-list* identityref 626 +--rw priority? uint8 627 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 628 /te:p2p-secondary-path/te:path-in-segment 629 /te:label-restrictions/te:label-restriction 630 /te:label-start/te:te-label/te:technology: 631 +--:(otn) 632 +--rw (range-type)? 633 +--:(trib-port) 634 | +--rw otn-tpn? otn-tpn 635 +--:(trib-slot) 636 +--rw otn-ts? otn-ts 637 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 638 /te:p2p-secondary-path/te:path-in-segment 639 /te:label-restrictions/te:label-restriction/te:label-end 640 /te:te-label/te:technology: 641 +--:(otn) 642 +--rw (range-type)? 643 +--:(trib-port) 644 | +--rw otn-tpn? otn-tpn 645 +--:(trib-slot) 646 +--rw otn-ts? otn-ts 647 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 648 /te:p2p-secondary-path/te:path-out-segment 649 /te:label-restrictions/te:label-restriction: 650 +--rw range-type? otn-label-range-type 651 +--rw tsg? identityref 652 +--rw odu-type-list* identityref 653 +--rw priority? uint8 654 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 655 /te:p2p-secondary-path/te:path-out-segment 656 /te:label-restrictions/te:label-restriction 657 /te:label-start/te:te-label/te:technology: 658 +--:(otn) 659 +--rw (range-type)? 660 +--:(trib-port) 661 | +--rw otn-tpn? otn-tpn 662 +--:(trib-slot) 663 +--rw otn-ts? otn-ts 664 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 665 /te:p2p-secondary-path/te:path-out-segment 666 /te:label-restrictions/te:label-restriction/te:label-end 667 /te:te-label/te:technology: 668 +--:(otn) 669 +--rw (range-type)? 670 +--:(trib-port) 671 | +--rw otn-tpn? otn-tpn 672 +--:(trib-slot) 673 +--rw otn-ts? otn-ts 674 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 675 /te:p2p-secondary-path/te:computed-paths-properties 676 /te:computed-path-properties/te:path-properties 677 /te:path-route-objects/te:path-computed-route-object 678 /te:type/te:label/te:label-hop/te:te-label/te:technology: 679 +--:(otn) 680 +--ro otn-tpn? otn-tpn 681 +--ro tsg? identityref 682 +--ro ts-list? string 683 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 684 /te:p2p-secondary-path/te:lsps/te:lsp 685 /te:lsp-record-route-information 686 /te:lsp-record-route-information/te:type/te:label 687 /te:label-hop/te:te-label/te:technology: 688 +--:(otn) 689 +--ro otn-tpn? otn-tpn 690 +--ro tsg? identityref 691 +--ro ts-list? string 692 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 693 /te:p2p-secondary-path/te:lsps/te:lsp/te:path-properties 694 /te:path-route-objects/te:path-computed-route-object 695 /te:type/te:label/te:label-hop/te:te-label/te:technology: 696 +--:(otn) 697 +--ro otn-tpn? otn-tpn 698 +--ro tsg? identityref 699 +--ro ts-list? string 700 augment /te:te/te:lsps-state/te:lsp/te:lsp-record-route-information 701 /te:lsp-record-route-information/te:type/te:label 702 /te:label-hop/te:te-label/te:technology: 703 +--:(otn) 704 +--ro otn-tpn? otn-tpn 705 +--ro tsg? identityref 706 +--ro ts-list? string 708 5. OTN Tunnel YANG Code 710 file "ietf-otn-tunnel@2021-02-10.yang" 711 module ietf-otn-tunnel { 712 yang-version 1.1; 713 namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; 714 prefix "otn-tunnel"; 715 import ietf-te-types { 716 prefix te-types; 717 revision-date "2019-02-06"; 718 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 719 Common Traffic Engineering Types"; 720 } 722 import ietf-te { 723 prefix "te"; 724 revision-date "2019-02-15"; 725 reference 726 "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic 727 Engineering Tunnels and Interfaces. "; 728 } 730 import ietf-layer1-types { 731 prefix "l1-types"; 732 reference 733 "I-D.ietf-ccamp-layer1-types: 734 A YANG Data Model for Layer 1 Types. "; 735 } 737 organization 738 "IETF CCAMP Working Group"; 739 contact 740 "WG Web: 741 WG List: 743 Editor: Haomian Zheng 744 746 Editor: Italo Busi 747 749 Editor: Sergio Belotti 750 752 Editor: Victor Lopez 753 755 Editor: Yunbin Xu 756 "; 758 description 759 "This module defines a model for OTN Tunnel Services. 761 The model fully conforms to the Network Management 762 Datastore Architecture (NMDA). 764 Copyright (c) 2021 IETF Trust and the persons 765 identified as authors of the code. All rights reserved. 767 Redistribution and use in source and binary forms, with or 768 without modification, is permitted pursuant to, and subject 769 to the license terms contained in, the Simplified BSD License 770 set forth in Section 4.c of the IETF Trust's Legal Provisions 771 Relating to IETF Documents 772 (https://trustee.ietf.org/license-info). 774 This version of this YANG module is part of RFC XXXX; see 775 the RFC itself for full legal notices."; 777 revision "2021-04-12" { 778 description 779 "Initial Revision"; 780 reference 781 "RFC XXXX: OTN Tunnel YANG Model"; 782 // RFC Ed.: replace XXXX with actual RFC number, update date 783 // information and remove this note 784 } 786 /* 787 * Data nodes 788 */ 790 /* 791 * Augment TE bandwidth 792 */ 794 /* Augment bandwidth of named-path-constraints */ 795 augment "/te:te/te:globals/te:named-path-constraints/" 796 + "te:named-path-constraint/" 797 + "te:te-bandwidth/te:technology" { 798 description "OTN bandwidth."; 799 case otn { 800 uses l1-types:otn-path-bandwidth; 801 } 802 } 804 /* Augment bandwdith of tunnel */ 805 augment "/te:te/te:tunnels/te:tunnel/" 806 + "te:te-bandwidth/te:technology" { 807 description "OTN bandwidth."; 808 case otn { 809 uses l1-types:otn-path-bandwidth; 810 } 811 } 812 /* Augment bandwidth of primary path */ 813 augment "/te:te/te:tunnels/te:tunnel/" 814 + "te:p2p-primary-paths/te:p2p-primary-path/" 815 + "te:te-bandwidth/te:technology" { 816 description "OTN bandwidth."; 817 case otn { 818 uses l1-types:otn-path-bandwidth; 819 } 820 } 822 /* Augment bandwidth of reverse primary path */ 823 augment "/te:te/te:tunnels/te:tunnel/" 824 + "te:p2p-primary-paths/te:p2p-primary-path/" 825 + "te:p2p-primary-reverse-path/" 826 + "te:te-bandwidth/te:technology" { 827 description "OTN bandwidth."; 828 case otn { 829 uses l1-types:otn-path-bandwidth; 830 } 831 } 833 /* Augment bandwidth of secondary path */ 834 augment "/te:te/te:tunnels/te:tunnel/" 835 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 836 + "te:te-bandwidth/te:technology" { 837 description "OTN bandwidth."; 838 case otn { 839 uses l1-types:otn-path-bandwidth; 840 } 841 } 843 /* 844 * Augment TE label. 845 */ 847 /* Augment label hop of route-object-exclude-always of 848 named-path-constraints */ 849 augment "/te:te/te:globals/te:named-path-constraints/" 850 + "te:named-path-constraint/" 851 + "te:explicit-route-objects-always/" 852 + "te:route-object-exclude-always/te:type/te:label/" 853 + "te:label-hop/te:te-label/te:technology" { 854 description "OTN label."; 855 case otn { 856 uses l1-types:otn-label-hop; 857 } 858 } 859 /* Augment label hop of route-object-include-exclude of 860 named-path-constraints */ 861 augment "/te:te/te:globals/te:named-path-constraints/" 862 + "te:named-path-constraint/" 863 + "te:explicit-route-objects-always/" 864 + "te:route-object-include-exclude/te:type/te:label/" 865 + "te:label-hop/te:te-label/te:technology" { 866 description "OTN label."; 867 case otn { 868 uses l1-types:otn-label-hop; 869 } 870 } 872 /* Augment label restrictions for the forwarding direction of 873 path-in-segment of named-path-constraints */ 874 augment "/te:te/te:globals/te:named-path-constraints/" 875 + "te:named-path-constraint/te:path-in-segment/" 876 + "te:label-restrictions/te:label-restriction" { 877 description "OTN label."; 878 uses l1-types:otn-label-range-info; 879 } 881 /* Augment label restrictions start for the forwarding direction of 882 path-in-segment of named-path-constraints */ 883 augment "/te:te/te:globals/te:named-path-constraints/" 884 + "te:named-path-constraint/te:path-in-segment/" 885 + "te:label-restrictions/" 886 + "te:label-restriction/te:label-start/" 887 + "te:te-label/te:technology" { 888 description "OTN label."; 889 case otn { 890 uses l1-types:otn-label-start-end; 891 } 892 } 894 /* Augment label restrictions end for the forwarding direction of 895 path-in-segment of named-path-constraints */ 896 augment "/te:te/te:globals/te:named-path-constraints/" 897 + "te:named-path-constraint/te:path-in-segment/" 898 + "te:label-restrictions/" 899 + "te:label-restriction/te:label-end/" 900 + "te:te-label/te:technology" { 901 description "OTN label."; 902 case otn { 903 uses l1-types:otn-label-start-end; 904 } 905 } 906 /* Augment label restrictions 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" { 912 description "OTN label."; 913 uses l1-types:otn-label-range-info; 914 } 916 /* Augment label restrictions start for the forwarding direction of 917 path-out-segment of named-path-constraints */ 918 augment "/te:te/te:globals/te:named-path-constraints/" 919 + "te:named-path-constraint/te:path-out-segment/" 920 + "te:label-restrictions/" 921 + "te:label-restriction/te:label-start/" 922 + "te:te-label/te:technology" { 923 description "OTN label."; 924 case otn { 925 uses l1-types:otn-label-start-end; 926 } 927 } 929 /* Augment label restrictions end for the forwarding direction of 930 path-out-segment of named-path-constraints */ 931 augment "/te:te/te:globals/te:named-path-constraints/" 932 + "te:named-path-constraint/te:path-out-segment/" 933 + "te:label-restrictions/" 934 + "te:label-restriction/te:label-end/" 935 + "te:te-label/te:technology" { 936 description "OTN label."; 937 case otn { 938 uses l1-types:otn-label-start-end; 939 } 940 } 942 /* Augment label hop of route-exclude of primary path */ 943 augment "/te:te/te:tunnels/te:tunnel/" 944 + "te:p2p-primary-paths/te:p2p-primary-path/" 945 + "te:optimizations/te:algorithm/te:metric/" 946 + "te:optimization-metric/te:explicit-route-exclude-objects/" 947 + "te:route-object-exclude-object/te:type/te:label/" 948 + "te:label-hop/te:te-label/te:technology" { 949 description "OTN label."; 950 case otn { 951 uses l1-types:otn-label-hop; 952 } 953 } 954 /* Augment label hop of route-include of primary path */ 955 augment "/te:te/te:tunnels/te:tunnel/" 956 + "te:p2p-primary-paths/te:p2p-primary-path/" 957 + "te:optimizations/te:algorithm/te:metric/" 958 + "te:optimization-metric/te:explicit-route-include-objects/" 959 + "te:route-object-include-object/te:type/te:label/" 960 + "te:label-hop/te:te-label/te:technology" { 961 description "OTN label."; 962 case otn { 963 uses l1-types:otn-label-hop; 964 } 965 } 967 /* Augment label hop of route-object-exclude-always of 968 primary path */ 969 augment "/te:te/te:tunnels/te:tunnel/" 970 + "te:p2p-primary-paths/te:p2p-primary-path/" 971 + "te:explicit-route-objects-always/" 972 + "te:route-object-exclude-always/te:type/te:label/" 973 + "te:label-hop/te:te-label/te:technology" { 974 description "OTN label."; 975 case otn { 976 uses l1-types:otn-label-hop; 977 } 978 } 980 /* Augment label hop of route-object-include-exclude of 981 primary path */ 982 augment "/te:te/te:tunnels/te:tunnel/" 983 + "te:p2p-primary-paths/te:p2p-primary-path/" 984 + "te:explicit-route-objects-always/" 985 + "te:route-object-include-exclude/te:type/te:label/" 986 + "te:label-hop/te:te-label/te:technology" { 987 description "OTN label."; 988 case otn { 989 uses l1-types:otn-label-hop; 990 } 991 } 993 /* Augment label restrictions for the path-in-segment of 994 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" { 999 description "OTN label."; 1000 uses l1-types:otn-label-range-info; 1001 } 1002 /* Augment label restrictions start for the forwarding direction of 1003 path-in-segment of primary path */ 1004 augment "/te:te/te:tunnels/te:tunnel/" 1005 + "te:p2p-primary-paths/te:p2p-primary-path/" 1006 + "te:path-in-segment/te:label-restrictions/" 1007 + "te:label-restriction/te:label-start/" 1008 + "te:te-label/te:technology" { 1009 description "OTN label."; 1010 case otn { 1011 uses l1-types:otn-label-start-end; 1012 } 1013 } 1015 /* Augment label restrictions end for the forwarding direction of 1016 path-in-segment of primary path */ 1017 augment "/te:te/te:tunnels/te:tunnel/" 1018 + "te:p2p-primary-paths/te:p2p-primary-path/" 1019 + "te:path-in-segment/te:label-restrictions/" 1020 + "te:label-restriction/te:label-end/" 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 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" { 1034 description "OTN label."; 1035 uses l1-types:otn-label-range-info; 1036 } 1038 /* Augment label restrictions start for the forwarding direction of 1039 path-out-segment of primary path */ 1040 augment "/te:te/te:tunnels/te:tunnel/" 1041 + "te:p2p-primary-paths/te:p2p-primary-path/" 1042 + "te:path-out-segment/te:label-restrictions/" 1043 + "te:label-restriction/te:label-start/" 1044 + "te:te-label/te:technology" { 1045 description "OTN label."; 1046 case otn { 1047 uses l1-types:otn-label-start-end; 1048 } 1049 } 1050 /* Augment label restrictions end for the forwarding direction of 1051 path-out-segment of primary path */ 1052 augment "/te:te/te:tunnels/te:tunnel/" 1053 + "te:p2p-primary-paths/te:p2p-primary-path/" 1054 + "te:path-out-segment/te:label-restrictions/" 1055 + "te:label-restriction/te:label-end/" 1056 + "te:te-label/te:technology" { 1057 description "OTN label."; 1058 case otn { 1059 uses l1-types:otn-label-start-end; 1060 } 1061 } 1063 /* Augment label hop of path-route of primary path */ 1064 augment "/te:te/te:tunnels/te:tunnel/" 1065 + "te:p2p-primary-paths/te:p2p-primary-path/" 1066 + "te:computed-paths-properties/" 1067 + "te:computed-path-properties/te:path-properties/" 1068 + "te:path-route-objects/te:path-computed-route-object/" 1069 + "te:type/te:label/" 1070 + "te:label-hop/te:te-label/te:technology" { 1071 description "OTN label."; 1072 case otn { 1073 uses l1-types:otn-label-hop; 1074 } 1075 } 1077 /* Augment label hop of record-route of primary LSP */ 1078 augment "/te:te/te:tunnels/te:tunnel/" 1079 + "te:p2p-primary-paths/te:p2p-primary-path/" 1080 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1081 + "te:lsp-record-route-information/te:type/te:label/" 1082 + "te:label-hop/te:te-label/te:technology" { 1083 description "OTN label."; 1084 case otn { 1085 uses l1-types:otn-label-hop; 1086 } 1087 } 1089 /* Augment label hop of path-route of primary LSP */ 1090 augment "/te:te/te:tunnels/te:tunnel/" 1091 + "te:p2p-primary-paths/te:p2p-primary-path/" 1092 + "te:lsps/te:lsp/te:path-properties/" 1093 + "te:path-route-objects/te:path-computed-route-object/" 1094 + "te:type/te:label/" 1095 + "te:label-hop/te:te-label/te:technology" { 1096 description "OTN label."; 1097 case otn { 1098 uses l1-types:otn-label-hop; 1099 } 1100 } 1102 /* Augment label hop of route-exclude of reverse primary path */ 1103 augment "/te:te/te:tunnels/te:tunnel/" 1104 + "te:p2p-primary-paths/te:p2p-primary-path/" 1105 + "te:p2p-primary-reverse-path/" 1106 + "te:optimizations/te:algorithm/te:metric/" 1107 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1108 + "te:route-object-exclude-object/te:type/te:label/" 1109 + "te:label-hop/te:te-label/te:technology" { 1110 description "OTN label."; 1111 case otn { 1112 uses l1-types:otn-label-hop; 1113 } 1114 } 1116 /* Augment label hop of route-include of reverse primary path */ 1117 augment "/te:te/te:tunnels/te:tunnel/" 1118 + "te:p2p-primary-paths/te:p2p-primary-path/" 1119 + "te:p2p-primary-reverse-path/" 1120 + "te:optimizations/te:algorithm/te:metric/" 1121 + "te:optimization-metric/te:explicit-route-include-objects/" 1122 + "te:route-object-include-object/te:type/te:label/" 1123 + "te:label-hop/te:te-label/te:technology" { 1124 description "OTN label."; 1125 case otn { 1126 uses l1-types:otn-label-hop; 1127 } 1128 } 1130 /* Augment label hop of route-object-exclude-always of 1131 reverse primary path */ 1132 augment "/te:te/te:tunnels/te:tunnel/" 1133 + "te:p2p-primary-paths/te:p2p-primary-path/" 1134 + "te:p2p-primary-reverse-path/" 1135 + "te:explicit-route-objects-always/" 1136 + "te:route-object-exclude-always/" 1137 + "te:type/te:label/" 1138 + "te:label-hop/te:te-label/te:technology" { 1139 description "OTN label."; 1140 case otn { 1141 uses l1-types:otn-label-hop; 1142 } 1143 } 1145 /* Augment label hop of route-object-include-exclude of 1146 reverse primary path */ 1147 augment "/te:te/te:tunnels/te:tunnel/" 1148 + "te:p2p-primary-paths/te:p2p-primary-path/" 1149 + "te:p2p-primary-reverse-path/" 1150 + "te:explicit-route-objects-always/" 1151 + "te:route-object-include-exclude/" 1152 + "te:type/te:label/" 1153 + "te:label-hop/te:te-label/te:technology" { 1154 description "OTN label."; 1155 case otn { 1156 uses l1-types:otn-label-hop; 1157 } 1158 } 1160 /* Augment label restrictions for the forwarding direction of 1161 path-in-segment of reverse primary path */ 1162 augment "/te:te/te:tunnels/te:tunnel/" 1163 + "te:p2p-primary-paths/te:p2p-primary-path/" 1164 + "te:p2p-primary-reverse-path/" 1165 + "te:path-in-segment/te:label-restrictions/" 1166 + "te:label-restriction" { 1167 description "OTN label."; 1168 uses l1-types:otn-label-range-info; 1169 } 1171 /* Augment label restrictions start for the forwarding direction of 1172 path-in-segment of reverse primary path */ 1173 augment "/te:te/te:tunnels/te:tunnel/" 1174 + "te:p2p-primary-paths/te:p2p-primary-path/" 1175 + "te:p2p-primary-reverse-path/" 1176 + "te:path-in-segment/te:label-restrictions/" 1177 + "te:label-restriction/te:label-start/" 1178 + "te:te-label/te:technology" { 1179 description "OTN label."; 1180 case otn { 1181 uses l1-types:otn-label-start-end; 1182 } 1183 } 1185 /* Augment label restrictions end for the forwarding direction of 1186 path-in-segment of reverse primary path */ 1187 augment "/te:te/te:tunnels/te:tunnel/" 1188 + "te:p2p-primary-paths/te:p2p-primary-path/" 1189 + "te:p2p-primary-reverse-path/" 1190 + "te:path-in-segment/te:label-restrictions/" 1191 + "te:label-restriction/te:label-end/" 1192 + "te:te-label/te:technology" { 1193 description "OTN label."; 1194 case otn { 1195 uses l1-types:otn-label-start-end; 1196 } 1197 } 1199 /* Augment label restrictions for the forwarding direction of 1200 path-out-segment of reverse primary path */ 1201 augment "/te:te/te:tunnels/te:tunnel/" 1202 + "te:p2p-primary-paths/te:p2p-primary-path/" 1203 + "te:p2p-primary-reverse-path/" 1204 + "te:path-out-segment/te:label-restrictions/" 1205 + "te:label-restriction" { 1206 description "OTN label."; 1207 uses l1-types:otn-label-range-info; 1208 } 1210 /* Augment label restrictions start for the forwarding direction of 1211 path-out-segment of reverse primary path */ 1212 augment "/te:te/te:tunnels/te:tunnel/" 1213 + "te:p2p-primary-paths/te:p2p-primary-path/" 1214 + "te:p2p-primary-reverse-path/" 1215 + "te:path-out-segment/te:label-restrictions/" 1216 + "te:label-restriction/te:label-start/" 1217 + "te:te-label/te:technology" { 1218 description "OTN label."; 1219 case otn { 1220 uses l1-types:otn-label-start-end; 1221 } 1222 } 1224 /* Augment label restrictions end for the forwarding direction of 1225 path-out-segment of reverse primary path */ 1226 augment "/te:te/te:tunnels/te:tunnel/" 1227 + "te:p2p-primary-paths/te:p2p-primary-path/" 1228 + "te:p2p-primary-reverse-path/" 1229 + "te:path-out-segment/te:label-restrictions/" 1230 + "te:label-restriction/te:label-end/" 1231 + "te:te-label/te:technology" { 1232 description "OTN label."; 1233 case otn { 1234 uses l1-types:otn-label-start-end; 1235 } 1236 } 1238 /* Augment label hop of path-route of reverse primary path */ 1239 augment "/te:te/te:tunnels/te:tunnel/" 1240 + "te:p2p-primary-paths/te:p2p-primary-path/" 1241 + "te:p2p-primary-reverse-path/" 1242 + "te:computed-paths-properties/te:computed-path-properties/" 1243 + "te:path-properties/te:path-route-objects/" 1244 + "te:path-computed-route-object/te:type/te:label/" 1245 + "te:label-hop/te:te-label/te:technology" { 1246 description "OTN label."; 1247 case otn { 1248 uses l1-types:otn-label-hop; 1249 } 1250 } 1252 /* Augment label hop of record-route of reverse primary LSP */ 1253 augment "/te:te/te:tunnels/te:tunnel/" 1254 + "te:p2p-primary-paths/te:p2p-primary-path/" 1255 + "te:p2p-primary-reverse-path/" 1256 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1257 + "te:lsp-record-route-information/te:type/te:label/" 1258 + "te:label-hop/te:te-label/te:technology" { 1259 description "OTN label."; 1260 case otn { 1261 uses l1-types:otn-label-hop; 1262 } 1263 } 1265 /* Augment label hop of path-route of reverse primary LSP */ 1266 augment "/te:te/te:tunnels/te:tunnel/" 1267 + "te:p2p-primary-paths/te:p2p-primary-path/" 1268 + "te:p2p-primary-reverse-path/" 1269 + "te:lsps/te:lsp/te:path-properties/" 1270 + "te:path-route-objects/te:path-computed-route-object/" 1271 + "te:type/te:label/" 1272 + "te:label-hop/te:te-label/te:technology" { 1273 description "OTN label."; 1274 case otn { 1275 uses l1-types:otn-label-hop; 1276 } 1277 } 1279 /* Augment label hop of route-exclude of secondary path */ 1280 augment "/te:te/te:tunnels/te:tunnel/" 1281 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1282 + "te:optimizations/te:algorithm/te:metric/" 1283 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1284 + "te:route-object-exclude-object/te:type/te:label/" 1285 + "te:label-hop/te:te-label/te:technology" { 1286 description "OTN label."; 1287 case otn { 1288 uses l1-types:otn-label-hop; 1289 } 1291 } 1293 /* Augment label hop of route-include of secondary path */ 1294 augment "/te:te/te:tunnels/te:tunnel/" 1295 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1296 + "te:optimizations/te:algorithm/te:metric/" 1297 + "te:optimization-metric/te:explicit-route-include-objects/" 1298 + "te:route-object-include-object/te:type/te:label/" 1299 + "te:label-hop/te:te-label/te:technology" { 1300 description "OTN label."; 1301 case otn { 1302 uses l1-types:otn-label-hop; 1303 } 1304 } 1306 /* Augment label hop of route-object-exclude-always of 1307 secondary path */ 1308 augment "/te:te/te:tunnels/te:tunnel/" 1309 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1310 + "te:explicit-route-objects-always/" 1311 + "te:route-object-exclude-always/te:type/te:label/" 1312 + "te:label-hop/te:te-label/te:technology" { 1313 description "OTN label."; 1314 case otn { 1315 uses l1-types:otn-label-hop; 1316 } 1317 } 1319 /* Augment label hop of route-object-include-exclude of 1320 secondary path */ 1321 augment "/te:te/te:tunnels/te:tunnel/" 1322 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1323 + "te:explicit-route-objects-always/" 1324 + "te:route-object-include-exclude/te:type/te:label/" 1325 + "te:label-hop/te:te-label/te:technology" { 1326 description "OTN label."; 1327 case otn { 1328 uses l1-types:otn-label-hop; 1329 } 1330 } 1332 /* Augment label restrictions for the forwarding direction of 1333 path-in-segment of secondary path */ 1334 augment "/te:te/te:tunnels/te:tunnel/" 1335 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1336 + "te:path-in-segment/te:label-restrictions/" 1337 + "te:label-restriction" { 1338 description "OTN label."; 1339 uses l1-types:otn-label-range-info; 1340 } 1342 /* Augment label restrictions start for the forwarding direction of 1343 path-in-segment of secondary path */ 1344 augment "/te:te/te:tunnels/te:tunnel/" 1345 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1346 + "te:path-in-segment/te:label-restrictions/" 1347 + "te:label-restriction/te:label-start/" 1348 + "te:te-label/te:technology" { 1349 description "OTN label."; 1350 case otn { 1351 uses l1-types:otn-label-start-end; 1352 } 1353 } 1355 /* Augment label restrictions end for the forwarding direction of 1356 path-in-segment of secondary path */ 1357 augment "/te:te/te:tunnels/te:tunnel/" 1358 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1359 + "te:path-in-segment/te:label-restrictions/" 1360 + "te:label-restriction/te:label-end/" 1361 + "te:te-label/te:technology" { 1362 description "OTN label."; 1363 case otn { 1364 uses l1-types:otn-label-start-end; 1365 } 1366 } 1368 /* Augment label restrictions for the forwarding direction of 1369 path-out-segment of secondary path */ 1370 augment "/te:te/te:tunnels/te:tunnel/" 1371 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1372 + "te:path-out-segment/te:label-restrictions/" 1373 + "te:label-restriction" { 1374 description "OTN label."; 1375 uses l1-types:otn-label-range-info; 1376 } 1378 /* Augment label restrictions start for the forwarding direction of 1379 path-out-segment of secondary path */ 1380 augment "/te:te/te:tunnels/te:tunnel/" 1381 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1382 + "te:path-out-segment/te:label-restrictions/" 1383 + "te:label-restriction/te:label-start/" 1384 + "te:te-label/te:technology" { 1385 description "OTN label."; 1386 case otn { 1387 uses l1-types:otn-label-start-end; 1388 } 1389 } 1391 /* Augment label restrictions end for the forwarding direction of 1392 path-out-segment of secondary path */ 1393 augment "/te:te/te:tunnels/te:tunnel/" 1394 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1395 + "te:path-out-segment/te:label-restrictions/" 1396 + "te:label-restriction/te:label-end/" 1397 + "te:te-label/te:technology" { 1398 description "OTN label."; 1399 case otn { 1400 uses l1-types:otn-label-start-end; 1401 } 1402 } 1404 /* Augment label hop of path-route of secondary path */ 1405 augment "/te:te/te:tunnels/te:tunnel/" 1406 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1407 + "te:computed-paths-properties/" 1408 + "te:computed-path-properties/" 1409 + "te:path-properties/te:path-route-objects/" 1410 + "te:path-computed-route-object/te:type/te:label/" 1411 + "te:label-hop/te:te-label/te:technology" { 1412 description "OTN label."; 1413 case otn { 1414 uses l1-types:otn-label-hop; 1415 } 1416 } 1418 /* Augment label hop of record-route of secondary LSP */ 1419 augment "/te:te/te:tunnels/te:tunnel/" 1420 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1421 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1422 + "te:lsp-record-route-information/te:type/te:label/" 1423 + "te:label-hop/te:te-label/te:technology" { 1424 description "OTN label."; 1425 case otn { 1426 uses l1-types:otn-label-hop; 1427 } 1428 } 1430 /* Augment label hop of path-route of secondary LSP */ 1431 augment "/te:te/te:tunnels/te:tunnel/" 1432 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1433 + "te:lsps/te:lsp/te:path-properties/" 1434 + "te:path-route-objects/" 1435 + "te:path-computed-route-object/te:type/te:label/" 1436 + "te:label-hop/te:te-label/te:technology" { 1437 description "OTN label."; 1438 case otn { 1439 uses l1-types:otn-label-hop; 1440 } 1441 } 1443 /* Augment label hop of record-route of LSP */ 1444 augment "/te:te/te:lsps-state/" 1445 + "te:lsp/te:lsp-record-route-information/" 1446 + "te:lsp-record-route-information/te:type/te:label/" 1447 + "te:label-hop/te:te-label/te:technology" { 1448 description "OTN label."; 1449 case otn { 1450 uses l1-types:otn-label-hop; 1451 } 1452 } 1453 } 1454 1456 6. Security Considerations 1458 The YANG module specified in this document defines a schema for data 1459 that is designed to be accessed via network management protocols such 1460 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1461 is the secure transport layer, and the mandatory-to-implement secure 1462 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1463 is HTTPS, and the mandatory-to-implement secure transport is TLS 1464 [RFC8446]. 1466 The NETCONF access control model [RFC8341] provides the means to 1467 restrict access for particular NETCONF or RESTCONF users to a 1468 preconfigured subset of all available NETCONF or RESTCONF protocol 1469 operations and content. 1471 There are a number of data nodes defined in this YANG module that are 1472 writable/creatable/deletable (i.e., config true, which is the 1473 default). These data nodes may be considered sensitive or vulnerable 1474 in some network environments. Write operations (e.g., edit-config) 1475 to these data nodes without proper protection can have a negative 1476 effect on network operations. Considerations in Section 10 of 1477 [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the 1478 module defined in this document. 1480 Some of the readable data nodes in this YANG module may be considered 1481 sensitive or vulnerable in some network environments. It is thus 1482 important to control read access (e.g., via get, get-config, or 1483 notification) to these data nodes. Considerations in Section 10 of 1484 [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the 1485 module defined in this document. 1487 7. IANA Considerations 1489 It is proposed that IANA should assign new URIs from the "IETF XML 1490 Registry" [RFC3688] as follows: 1492 URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel 1493 Registrant Contact: The IESG 1494 XML: N/A; the requested URI is an XML namespace. 1496 This document registers following YANG modules in the YANG Module 1497 Names registry [RFC7950]. 1499 name: ietf-otn-tunnel 1500 namespace: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel 1501 prefix: otn-tunnel 1502 reference: RFC XXXX 1504 8. Acknowledgements 1506 TBD. 1508 9. Contributors 1510 Aihua Guo 1511 Futurewei 1512 Email: aihuaguo.ietf@gmail.com 1514 Anurag Sharma 1515 Google 1516 Email: ansha@google.com 1518 Rajan Rao 1519 Infinera 1520 Email: rrao@infinera.com 1522 Yunbo Li 1523 China Mobile 1524 Email: liyunbo@chinamobile.com 1526 Dieter Beller 1527 Nokia 1528 Email: dieter.beller@nokia.com 1530 Yanlei Zheng 1531 China Unicom 1532 Email: zhengyanlei@chinaunicom.cn 1534 Xian Zhang 1535 Huawei Technologies 1536 Email: zhang.xian@huawei.com 1538 Lei Wang 1539 China Mobile 1540 Email: wangleiyj@chinamobile.com 1542 Oscar Gonzalez de Dios 1543 Telefonica 1544 Email: oscar.gonzalezdedios@telefonica.com 1546 10. References 1548 10.1. Normative References 1550 [I-D.ietf-ccamp-layer1-types] 1551 Zheng, H. and I. Busi, "A YANG Data Model for Layer 1 1552 Types", draft-ietf-ccamp-layer1-types-08 (work in 1553 progress), November 2020. 1555 [I-D.ietf-ccamp-otn-topo-yang] 1556 Zheng, H., Busi, I., Liu, X., Belotti, S., and O. Dios, "A 1557 YANG Data Model for Optical Transport Network Topology", 1558 draft-ietf-ccamp-otn-topo-yang-11 (work in progress), 1559 September 2020. 1561 [I-D.ietf-teas-yang-te] 1562 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 1563 "A YANG Data Model for Traffic Engineering Tunnels, Label 1564 Switched Paths and Interfaces", draft-ietf-teas-yang-te-25 1565 (work in progress), July 2020. 1567 [ITU-Tg709] 1568 International Telecommunication Union, "Interfaces for the 1569 optical transport network", ITU-T G.709, March 2020. 1571 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1572 DOI 10.17487/RFC3688, January 2004, 1573 . 1575 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1576 and A. Bierman, Ed., "Network Configuration Protocol 1577 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1578 . 1580 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1581 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1582 . 1584 [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., 1585 and K. Pithewan, "GMPLS Signaling Extensions for Control 1586 of Evolving G.709 Optical Transport Networks", RFC 7139, 1587 DOI 10.17487/RFC7139, March 2014, 1588 . 1590 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1591 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1592 . 1594 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1595 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1596 . 1598 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 1599 Access Control Model", STD 91, RFC 8341, 1600 DOI 10.17487/RFC8341, March 2018, 1601 . 1603 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1604 and R. Wilton, "Network Management Datastore Architecture 1605 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1606 . 1608 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1609 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1610 . 1612 10.2. Informative References 1614 [I-D.ietf-ccamp-transport-nbi-app-statement] 1615 Busi, I., King, D., Zheng, H., and Y. Xu, "Transport 1616 Northbound Interface Applicability Statement", draft-ietf- 1617 ccamp-transport-nbi-app-statement-12 (work in progress), 1618 January 2021. 1620 [I-D.ietf-teas-actn-yang] 1621 Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., 1622 Shin, J., and S. Belotti, "Applicability of YANG models 1623 for Abstraction and Control of Traffic Engineered 1624 Networks", draft-ietf-teas-actn-yang-06 (work in 1625 progress), August 2020. 1627 [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. 1628 Ceccarelli, "Framework for GMPLS and PCE Control of G.709 1629 Optical Transport Networks", RFC 7062, 1630 DOI 10.17487/RFC7062, November 2013, 1631 . 1633 [RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and 1634 J. Drake, "Traffic Engineering Extensions to OSPF for 1635 GMPLS Control of Evolving G.709 Optical Transport 1636 Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014, 1637 . 1639 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1640 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1641 . 1643 Authors' Addresses 1645 Haomian Zheng 1646 Huawei Technologies 1647 H1, Huawei Xiliu Beipo Village, Songshan Lake 1648 Dongguan, Guangdong 523808 1649 China 1651 Email: zhenghaomian@huawei.com 1653 Italo Busi 1654 Huawei Technologies 1655 HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2 1656 Milan, Milan 20090 1657 Italy 1659 Email: Italo.Busi@huawei.com 1661 Sergio Belotti 1662 Nokia 1664 Email: sergio.belotti@nokia.com 1665 Victor Lopez 1666 Telefonica 1668 Email: victor.lopezalvarez@telefonica.com 1670 Yunbin Xu 1671 CAICT 1673 Email: xuyunbin@caict.ac.cn