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