idnits 2.17.1 draft-ietf-ccamp-wson-tunnel-model-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 86 instances of too long lines in the document, the longest one being 6 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 7, 2019) is 1875 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) == Missing Reference: 'RFCXXXX' is mentioned on line 137, but not defined == Missing Reference: 'H1-2A-245' is mentioned on line 1581, but not defined Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 CCAMP Working Group Y. Lee 2 Internet Draft D. Dhody 3 Intended status: Standard Track A. Guo 4 Expires: September 7, 2019 Huawei 6 V. Lopez 7 Telefonica 9 D. King 10 U. of Lancaster 12 B. Yoon 13 ETRI 15 R. Vilalta 16 CTTC 18 March 7, 2019 20 A Yang Data Model for WSON Tunnel 22 draft-ietf-ccamp-wson-tunnel-model-03 24 Abstract 26 This document provides a YANG data model for WSON TE tunnel. 28 Status of this Memo 30 This Internet-Draft is submitted to IETF in full conformance with 31 the provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF), its areas, and its working groups. Note that 35 other groups may also distribute working documents as Internet- 36 Drafts. 38 Internet-Drafts are draft documents valid for a maximum of six 39 months and may be updated, replaced, or obsoleted by other documents 40 at any time. It is inappropriate to use Internet-Drafts as 41 reference material or to cite them other than as "work in progress." 43 The list of current Internet-Drafts can be accessed at 44 http://www.ietf.org/ietf/1id-abstracts.txt 46 The list of Internet-Draft Shadow Directories can be accessed at 47 http://www.ietf.org/shadow.html 49 This Internet-Draft will expire on September 7, 2019. 51 Copyright Notice 53 Copyright (c) 2019 IETF Trust and the persons identified as the 54 document authors. All rights reserved. 56 This document is subject to BCP 78 and the IETF Trust's Legal 57 Provisions Relating to IETF Documents 58 (http://trustee.ietf.org/license-info) in effect on the date of 59 publication of this document. Please review these documents 60 carefully, as they describe your rights and restrictions with 61 respect to this document. Code Components extracted from this 62 document must include Simplified BSD License text as described in 63 Section 4.e of the Trust Legal Provisions and are provided without 64 warranty as described in the Simplified BSD License. 66 Table of Contents 68 1. Introduction...................................................2 69 1.1. Terminology...............................................3 70 1.2. Tree diagram..............................................3 71 1.3. Prefixes in Data Node Names...............................3 72 2. YANG Model (Tree Structure)....................................4 73 3. TE Tunnel Model for WSON......................................16 74 4. Security Considerations.......................................33 75 5. IANA Considerations...........................................34 76 6. Acknowledgments...............................................34 77 7. References....................................................35 78 7.1. Normative References.....................................35 79 7.2. Informative References...................................35 80 8. Contributors..................................................36 81 Authors' Addresses...............................................36 83 1. Introduction 85 This document provides a YANG data model for WSON tunnel model. The 86 YANG model described in this document is a WSON technology-specific 87 Yang Tunnel model based on the information model developed in 88 [RFC7446] and the two encoding documents [RFC7581] and [RFC7579] 89 that developed protocol independent encodings based on [RFC7446]. 91 This document augments the generic TE tunnel model [TE-Tunnel]. 93 1.1. Terminology 95 Refer to [RFC7446] and [RFC7581] for the key terms used in this 96 document. 98 The following terms are defined in [RFC7950] and are not redefined 99 here: 101 o client 103 o server 105 o augment 107 o data model 109 o data node 111 The following terms are defined in [RFC6241] and are not redefined 112 here: 114 o configuration data 116 o state data 118 The terminology for describing YANG data models is found in 119 [RFC7950]. 121 1.2. Tree diagram 123 A simplified graphical representation of the data model is used in 124 chapter 2 of this this document. The meaning of the symbols in 125 these diagrams is defined in [RFC8340]. 127 1.3. Prefixes in Data Node Names 129 In this document, names of data nodes and other data model objects 130 are prefixed using the standard prefix associated with the 131 corresponding YANG imported modules, as shown in Table 1. 133 +-------------+--------------------------+-----------------+ 134 | Prefix | YANG module | Reference | 135 +-------------+--------------------------+-----------------+ 136 | layer0-types| ietf-layer0-types | [WSON-TOPO] | 137 | wson-tunnel | ietf-wson-tunnel | [RFCXXXX] | 138 | tepc | ietf-te-path-computation | [TE-PC] | 139 | te | ietf-te | [TE-Tunnel] | 140 | otn-types | ietf-otn-types | [OTN-TOPO] | 141 +-------------+--------------------------+-----------------+ 143 Table 1: Prefixes and corresponding YANG modules 145 Note: The RFC Editor will replace XXXX with the number assigned to 146 the RFC once this draft becomes an RFC. 148 2. YANG Model (Tree Structure) 150 module: ietf-wson-tunnel 151 augment /te:te/te:tunnels/te:tunnel: 152 +-rw src-client-signal? identityref 153 +-rw dst-client-signal? identityref 154 +-rw fec-type? identityref 155 +-rw termination-type? identityref 156 +-rw bit-stuffing? boolean 157 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 158 constraint/te:te-bandwidth/te:technology: 159 +-:(wson) 160 +-rw bandwidth-type? identityref 161 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: 162 +-:(wson) 163 +-rw bandwidth-type? identityref 164 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 165 path/te:te-bandwidth/te:technology: 166 +-:(wson) 167 +-rw bandwidth-type? identityref 168 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 169 path/te:p2p-primary-reverse-path/te:te-bandwidth/te:technology: 170 +-:(wson) 171 +-rw bandwidth-type? identityref 172 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 173 path/te:te-bandwidth/te:technology: 174 +-:(wson) 175 +-rw bandwidth-type? identityref 176 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 177 constraint/te:explicit-route-objects-always/te:route-object-exclude- 178 always/te:type/te:label/te:label-hop/te:te-label/te:technology: 179 +-:(wson) 180 +-rw (grid-type)? 181 +-:(dwdm) 182 | +-rw (single-or-super-channel)? 183 | +-:(single) 184 | | +-rw dwdm-n? int16 185 | +-:(super) 186 | +-rw subcarrier-dwdm-n* int16 187 +-:(cwdm) 188 +-rw cwdm-n? int16 189 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 190 constraint/te:explicit-route-objects-always/te:route-object-include- 191 exclude/te:type/te:label/te:label-hop/te:te-label/te:technology: 192 +-:(wson) 193 +-rw (grid-type)? 194 +-:(dwdm) 195 | +-rw (single-or-super-channel)? 196 | +-:(single) 197 | | +-rw dwdm-n? int16 198 | +-:(super) 199 | +-rw subcarrier-dwdm-n* int16 200 +-:(cwdm) 201 +-rw cwdm-n? int16 202 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 203 constraint/te:path-in-segment/te:label-restrictions/te:label-restriction: 204 +-rw grid-type? identityref 205 +-rw priority? uint8 206 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 207 constraint/te:path-in-segment/te:label-restrictions/te:label- 208 restriction/te:label-start/te:te-label/te:technology: 209 +-:(wson) 210 +-rw (grid-type)? 211 +-:(dwdm) 212 | +-rw dwdm-n? int16 213 +-:(cwdm) 214 +-rw cwdm-n? int16 215 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 216 constraint/te:path-in-segment/te:label-restrictions/te:label- 217 restriction/te:label-end/te:te-label/te:technology: 218 +-:(wson) 219 +-rw (grid-type)? 220 +-:(dwdm) 221 | +-rw dwdm-n? int16 222 +-:(cwdm) 223 +-rw cwdm-n? int16 224 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 225 constraint/te:path-out-segment/te:label-restrictions/te:label-restriction: 227 +-rw grid-type? identityref 228 +-rw priority? uint8 229 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 230 constraint/te:path-out-segment/te:label-restrictions/te:label- 231 restriction/te:label-start/te:te-label/te:technology: 232 +-:(wson) 233 +-rw (grid-type)? 234 +-:(dwdm) 235 | +-rw dwdm-n? int16 236 +-:(cwdm) 237 +-rw cwdm-n? int16 238 augment /te:te/te:globals/te:named-path-constraints/te:named-path- 239 constraint/te:path-out-segment/te:label-restrictions/te:label- 240 restriction/te:label-end/te:te-label/te:technology: 241 +-:(wson) 242 +-rw (grid-type)? 243 +-:(dwdm) 244 | +-rw dwdm-n? int16 245 +-:(cwdm) 246 +-rw cwdm-n? int16 247 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 248 path/te:optimizations/te:algorithm/te:metric/te:optimization- 249 metric/te:explicit-route-exclude-objects/te:route-object-exclude- 250 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 251 +-:(wson) 252 +-rw (grid-type)? 253 +-:(dwdm) 254 | +-rw (single-or-super-channel)? 255 | +-:(single) 256 | | +-rw dwdm-n? int16 257 | +-:(super) 258 | +-rw subcarrier-dwdm-n* int16 259 +-:(cwdm) 260 +-rw cwdm-n? int16 261 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 262 path/te:optimizations/te:algorithm/te:metric/te:optimization- 263 metric/te:explicit-route-include-objects/te:route-object-include- 264 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 265 +-:(wson) 266 +-rw (grid-type)? 267 +-:(dwdm) 268 | +-rw (single-or-super-channel)? 269 | +-:(single) 270 | | +-rw dwdm-n? int16 271 | +-:(super) 272 | +-rw subcarrier-dwdm-n* int16 273 +-:(cwdm) 274 +-rw cwdm-n? int16 275 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 276 path/te:explicit-route-objects-always/te:route-object-exclude- 277 always/te:type/te:label/te:label-hop/te:te-label/te:technology: 278 +-:(wson) 279 +-rw (grid-type)? 280 +-:(dwdm) 281 | +-rw (single-or-super-channel)? 282 | +-:(single) 283 | | +-rw dwdm-n? int16 284 | +-:(super) 285 | +-rw subcarrier-dwdm-n* int16 286 +-:(cwdm) 287 +-rw cwdm-n? int16 288 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 289 path/te:explicit-route-objects-always/te:route-object-include- 290 exclude/te:type/te:label/te:label-hop/te:te-label/te:technology: 291 +-:(wson) 292 +-rw (grid-type)? 293 +-:(dwdm) 294 | +-rw (single-or-super-channel)? 295 | +-:(single) 296 | | +-rw dwdm-n? int16 297 | +-:(super) 298 | +-rw subcarrier-dwdm-n* int16 299 +-:(cwdm) 300 +-rw cwdm-n? int16 301 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 302 path/te:path-in-segment/te:label-restrictions/te:label-restriction: 303 +-rw grid-type? identityref 304 +-rw priority? uint8 305 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 306 path/te:path-in-segment/te:label-restrictions/te:label-restriction/te:label- 307 start/te:te-label/te:technology: 308 +-:(wson) 309 +-rw (grid-type)? 310 +-:(dwdm) 311 | +-rw dwdm-n? int16 312 +-:(cwdm) 313 +-rw cwdm-n? int16 314 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 315 path/te:path-in-segment/te:label-restrictions/te:label-restriction/te:label- 316 end/te:te-label/te:technology: 318 +-:(wson) 319 +-rw (grid-type)? 320 +-:(dwdm) 321 | +-rw dwdm-n? int16 322 +-:(cwdm) 323 +-rw cwdm-n? int16 324 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 325 path/te:path-out-segment/te:label-restrictions/te:label-restriction: 326 +-rw grid-type? identityref 327 +-rw priority? uint8 328 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 329 path/te:path-out-segment/te:label-restrictions/te:label-restriction/te:label- 330 start/te:te-label/te:technology: 331 +-:(wson) 332 +-rw (grid-type)? 333 +-:(dwdm) 334 | +-rw dwdm-n? int16 335 +-:(cwdm) 336 +-rw cwdm-n? int16 337 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 338 path/te:path-out-segment/te:label-restrictions/te:label-restriction/te:label- 339 end/te:te-label/te:technology: 340 +-:(wson) 341 +-rw (grid-type)? 342 +-:(dwdm) 343 | +-rw dwdm-n? int16 344 +-:(cwdm) 345 +-rw cwdm-n? int16 346 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 347 path/te:computed-paths-properties/te:computed-path-properties/te:path- 348 properties/te:path-route-objects/te:path-computed-route- 349 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 350 +-:(wson) 351 +-ro (grid-type)? 352 +-:(dwdm) 353 | +-ro (single-or-super-channel)? 354 | +-:(single) 355 | | +-ro dwdm-n? int16 356 | +-:(super) 357 | +-ro subcarrier-dwdm-n* int16 358 +-:(cwdm) 359 +-ro cwdm-n? int16 360 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 361 path/te:lsps/te:lsp/te:lsp-record-route-information/te:lsp-record-route- 362 information/te:type/te:label/te:label-hop/te:te-label/te:technology: 364 +-:(wson) 365 +-ro (grid-type)? 366 +-:(dwdm) 367 | +-ro (single-or-super-channel)? 368 | +-:(single) 369 | | +-ro dwdm-n? int16 370 | +-:(super) 371 | +-ro subcarrier-dwdm-n* int16 372 +-:(cwdm) 373 +-ro cwdm-n? int16 374 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 375 path/te:lsps/te:lsp/te:path-properties/te:path-route-objects/te:path-computed- 376 route-object/te:type/te:label/te:label-hop/te:te-label/te:technology: 377 +-:(wson) 378 +-ro (grid-type)? 379 +-:(dwdm) 380 | +-ro (single-or-super-channel)? 381 | +-:(single) 382 | | +-ro dwdm-n? int16 383 | +-:(super) 384 | +-ro subcarrier-dwdm-n* int16 385 +-:(cwdm) 386 +-ro cwdm-n? int16 387 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 388 path/te:p2p-primary-reverse- 389 path/te:optimizations/te:algorithm/te:metric/te:optimization- 390 metric/te:explicit-route-exclude-objects/te:route-object-exclude- 391 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 392 +-:(wson) 393 +-rw (grid-type)? 394 +-:(dwdm) 395 | +-rw (single-or-super-channel)? 396 | +-:(single) 397 | | +-rw dwdm-n? int16 398 | +-:(super) 399 | +-rw subcarrier-dwdm-n* int16 400 +-:(cwdm) 401 +-rw cwdm-n? int16 402 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 403 path/te:p2p-primary-reverse- 404 path/te:optimizations/te:algorithm/te:metric/te:optimization- 405 metric/te:explicit-route-include-objects/te:route-object-include- 406 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 407 +-:(wson) 408 +-rw (grid-type)? 409 +-:(dwdm) 410 | +-rw (single-or-super-channel)? 411 | +-:(single) 412 | | +-rw dwdm-n? int16 413 | +-:(super) 414 | +-rw subcarrier-dwdm-n* int16 415 +-:(cwdm) 416 +-rw cwdm-n? int16 417 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 418 path/te:p2p-primary-reverse-path/te:explicit-route-objects-always/te:route- 419 object-exclude-always/te:type/te:label/te:label-hop/te:te-label/te:technology: 420 +-:(wson) 421 +-rw (grid-type)? 422 +-:(dwdm) 423 | +-rw (single-or-super-channel)? 424 | +-:(single) 425 | | +-rw dwdm-n? int16 426 | +-:(super) 427 | +-rw subcarrier-dwdm-n* int16 428 +-:(cwdm) 429 +-rw cwdm-n? int16 430 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 431 path/te:p2p-primary-reverse-path/te:explicit-route-objects-always/te:route- 432 object-include-exclude/te:type/te:label/te:label-hop/te:te- 433 label/te:technology: 434 +-:(wson) 435 +-rw (grid-type)? 436 +-:(dwdm) 437 | +-rw (single-or-super-channel)? 438 | +-:(single) 439 | | +-rw dwdm-n? int16 440 | +-:(super) 441 | +-rw subcarrier-dwdm-n* int16 442 +-:(cwdm) 443 +-rw cwdm-n? int16 444 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 445 path/te:p2p-primary-reverse-path/te:path-in-segment/te:label- 446 restrictions/te:label-restriction: 447 +-rw grid-type? identityref 448 +-rw priority? uint8 449 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 450 path/te:p2p-primary-reverse-path/te:path-in-segment/te:label- 451 restrictions/te:label-restriction/te:label-start/te:te-label/te:technology: 452 +-:(wson) 453 +-rw (grid-type)? 454 +-:(dwdm) 455 | +-rw dwdm-n? int16 456 +-:(cwdm) 457 +-rw cwdm-n? int16 458 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 459 path/te:p2p-primary-reverse-path/te:path-in-segment/te:label- 460 restrictions/te:label-restriction/te:label-end/te:te-label/te:technology: 461 +-:(wson) 462 +-rw (grid-type)? 463 +-:(dwdm) 464 | +-rw dwdm-n? int16 465 +-:(cwdm) 466 +-rw cwdm-n? int16 467 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 468 path/te:p2p-primary-reverse-path/te:path-out-segment/te:label- 469 restrictions/te:label-restriction: 470 +-rw grid-type? identityref 471 +-rw priority? uint8 472 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 473 path/te:p2p-primary-reverse-path/te:path-out-segment/te:label- 474 restrictions/te:label-restriction/te:label-start/te:te-label/te:technology: 475 +-:(wson) 476 +-rw (grid-type)? 477 +-:(dwdm) 478 | +-rw dwdm-n? int16 479 +-:(cwdm) 480 +-rw cwdm-n? int16 481 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 482 path/te:p2p-primary-reverse-path/te:path-out-segment/te:label- 483 restrictions/te:label-restriction/te:label-end/te:te-label/te:technology: 484 +-:(wson) 485 +-rw (grid-type)? 486 +-:(dwdm) 487 | +-rw dwdm-n? int16 488 +-:(cwdm) 489 +-rw cwdm-n? int16 490 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 491 path/te:p2p-primary-reverse-path/te:computed-paths-properties/te:computed- 492 path-properties/te:path-properties/te:path-route-objects/te:path-computed- 493 route-object/te:type/te:label/te:label-hop/te:te-label/te:technology: 494 +-:(wson) 495 +-ro (grid-type)? 496 +-:(dwdm) 497 | +-ro (single-or-super-channel)? 498 | +-:(single) 499 | | +-ro dwdm-n? int16 500 | +-:(super) 501 | +-ro subcarrier-dwdm-n* int16 502 +-:(cwdm) 503 +-ro cwdm-n? int16 504 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 505 path/te:p2p-primary-reverse-path/te:lsps/te:lsp/te:lsp-record-route- 506 information/te:lsp-record-route-information/te:type/te:label/te:label- 507 hop/te:te-label/te:technology: 508 +-:(wson) 509 +-ro (grid-type)? 510 +-:(dwdm) 511 | +-ro (single-or-super-channel)? 512 | +-:(single) 513 | | +-ro dwdm-n? int16 514 | +-:(super) 515 | +-ro subcarrier-dwdm-n* int16 516 +-:(cwdm) 517 +-ro cwdm-n? int16 518 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary- 519 path/te:p2p-primary-reverse-path/te:lsps/te:lsp/te:path-properties/te:path- 520 route-objects/te:path-computed-route-object/te:type/te:label/te:label- 521 hop/te:te-label/te:technology: 522 +-:(wson) 523 +-ro (grid-type)? 524 +-:(dwdm) 525 | +-ro (single-or-super-channel)? 526 | +-:(single) 527 | | +-ro dwdm-n? int16 528 | +-:(super) 529 | +-ro subcarrier-dwdm-n* int16 530 +-:(cwdm) 531 +-ro cwdm-n? int16 532 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 533 path/te:optimizations/te:algorithm/te:metric/te:optimization- 534 metric/te:explicit-route-exclude-objects/te:route-object-exclude- 535 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 536 +-:(wson) 537 +-rw (grid-type)? 538 +-:(dwdm) 539 | +-rw (single-or-super-channel)? 540 | +-:(single) 541 | | +-rw dwdm-n? int16 542 | +-:(super) 543 | +-rw subcarrier-dwdm-n* int16 544 +-:(cwdm) 545 +-rw cwdm-n? int16 546 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 547 path/te:optimizations/te:algorithm/te:metric/te:optimization- 548 metric/te:explicit-route-include-objects/te:route-object-include- 549 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 550 +-:(wson) 551 +-rw (grid-type)? 552 +-:(dwdm) 553 | +-rw (single-or-super-channel)? 554 | +-:(single) 555 | | +-rw dwdm-n? int16 556 | +-:(super) 557 | +-rw subcarrier-dwdm-n* int16 558 +-:(cwdm) 559 +-rw cwdm-n? int16 560 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 561 path/te:explicit-route-objects-always/te:route-object-exclude- 562 always/te:type/te:label/te:label-hop/te:te-label/te:technology: 563 +-:(wson) 564 +-rw (grid-type)? 565 +-:(dwdm) 566 | +-rw (single-or-super-channel)? 567 | +-:(single) 568 | | +-rw dwdm-n? int16 569 | +-:(super) 570 | +-rw subcarrier-dwdm-n* int16 571 +-:(cwdm) 572 +-rw cwdm-n? int16 573 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 574 path/te:explicit-route-objects-always/te:route-object-include- 575 exclude/te:type/te:label/te:label-hop/te:te-label/te:technology: 576 +-:(wson) 577 +-rw (grid-type)? 578 +-:(dwdm) 579 | +-rw (single-or-super-channel)? 580 | +-:(single) 581 | | +-rw dwdm-n? int16 582 | +-:(super) 583 | +-rw subcarrier-dwdm-n* int16 584 +-:(cwdm) 585 +-rw cwdm-n? int16 586 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 587 path/te:path-in-segment/te:label-restrictions/te:label-restriction: 588 +-rw grid-type? identityref 589 +-rw priority? uint8 590 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 591 path/te:path-in-segment/te:label-restrictions/te:label-restriction/te:label- 592 start/te:te-label/te:technology: 593 +-:(wson) 594 +-rw (grid-type)? 595 +-:(dwdm) 596 | +-rw dwdm-n? int16 597 +-:(cwdm) 598 +-rw cwdm-n? int16 599 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 600 path/te:path-in-segment/te:label-restrictions/te:label-restriction/te:label- 601 end/te:te-label/te:technology: 602 +-:(wson) 603 +-rw (grid-type)? 604 +-:(dwdm) 605 | +-rw dwdm-n? int16 606 +-:(cwdm) 607 +-rw cwdm-n? int16 608 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 609 path/te:path-out-segment/te:label-restrictions/te:label-restriction: 610 +-rw grid-type? identityref 611 +-rw priority? uint8 612 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 613 path/te:path-out-segment/te:label-restrictions/te:label-restriction/te:label- 614 start/te:te-label/te:technology: 615 +-:(wson) 616 +-rw (grid-type)? 617 +-:(dwdm) 618 | +-rw dwdm-n? int16 619 +-:(cwdm) 620 +-rw cwdm-n? int16 621 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 622 path/te:path-out-segment/te:label-restrictions/te:label-restriction/te:label- 623 end/te:te-label/te:technology: 624 +-:(wson) 625 +-rw (grid-type)? 626 +-:(dwdm) 627 | +-rw dwdm-n? int16 628 +-:(cwdm) 629 +-rw cwdm-n? int16 630 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 631 path/te:computed-paths-properties/te:computed-path-properties/te:path- 632 properties/te:path-route-objects/te:path-computed-route- 633 object/te:type/te:label/te:label-hop/te:te-label/te:technology: 635 +-:(wson) 636 +-ro (grid-type)? 637 +-:(dwdm) 638 | +-ro (single-or-super-channel)? 639 | +-:(single) 640 | | +-ro dwdm-n? int16 641 | +-:(super) 642 | +-ro subcarrier-dwdm-n* int16 643 +-:(cwdm) 644 +-ro cwdm-n? int16 645 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 646 path/te:lsps/te:lsp/te:lsp-record-route-information/te:lsp-record-route- 647 information/te:type/te:label/te:label-hop/te:te-label/te:technology: 648 +-:(wson) 649 +-ro (grid-type)? 650 +-:(dwdm) 651 | +-ro (single-or-super-channel)? 652 | +-:(single) 653 | | +-ro dwdm-n? int16 654 | +-:(super) 655 | +-ro subcarrier-dwdm-n* int16 656 +-:(cwdm) 657 +-ro cwdm-n? int16 658 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/te:p2p-secondary- 659 path/te:lsps/te:lsp/te:path-properties/te:path-route-objects/te:path-computed- 660 route-object/te:type/te:label/te:label-hop/te:te-label/te:technology: 661 +-:(wson) 662 +-ro (grid-type)? 663 +-:(dwdm) 664 | +-ro (single-or-super-channel)? 665 | +-:(single) 666 | | +-ro dwdm-n? int16 667 | +-:(super) 668 | +-ro subcarrier-dwdm-n* int16 669 +-:(cwdm) 670 +-ro cwdm-n? int16 671 augment /te:te/te:lsps-state/te:lsp/te:lsp-record-route-information/te:lsp- 672 record-route-information/te:type/te:label/te:label-hop/te:te- 673 label/te:technology: 674 +-:(wson) 675 +-ro (grid-type)? 676 +-:(dwdm) 677 | +-ro (single-or-super-channel)? 678 | +-:(single) 679 | | +-ro dwdm-n? int16 680 | +-:(super) 681 | +-ro subcarrier-dwdm-n* int16 682 +-:(cwdm) 683 +-ro cwdm-n? int16 684 augment /te:tunnels-rpc/te:input/te:tunnel-info/tepc:path-request: 685 +- src-client-signal? identityref 686 +- dst-client-signal? identityref 687 +- fec-type? identityref 688 +- termination-type? identityref 689 +- bit-stuffing? boolean 690 +- wavelength-assignment? identityref 692 3. TE Tunnel Model for WSON 694 file "ietf-wson-tunnel@2019-03-06.yang" 696 module ietf-wson-tunnel { 697 yang-version 1.1; 699 namespace "urn:ietf:params:xml:ns:yang:ietf-wson-tunnel"; 700 prefix "wson-tunnel"; 702 import ietf-te { prefix "te"; } 703 import ietf-layer0-types{ prefix "layer0-types"; } 704 import ietf-te-path-computation { prefix "tepc"; } 705 import ietf-otn-types { prefix "otn-types";} 707 organization 708 "IETF CCAMP Working Group"; 710 contact 711 "WG Web: 712 WG List: 714 WG Chair: Daniele Ceccarelli 715 717 WG Chair: Fatai Zhang 718 720 Editor: Young Lee 721 Editor: Aihua Guo 722 Editor: Dhruv Dhody 723 Editor: Ricard Vilalta "; 724 description 725 "This module defines a model for WSON Tunnel Services."; 727 revision "2019-03-06" { 728 description 729 "Updates to version 3"; 730 reference "version 3"; 731 } 733 /* Groupings. */ 734 grouping wson-tunnel-attributes { 735 description "Parameters for WSON tunnel."; 737 leaf src-client-signal { 738 type identityref { 739 base otn-types:client-signal; 740 } 741 description 742 "Client signal at the source endpoint of 743 the tunnel."; 744 } 746 leaf dst-client-signal { 747 type identityref { 748 base otn-types:client-signal; 749 } 750 description 751 "Client signal at the destination endpoint of 752 the tunnel."; 753 } 755 leaf fec-type { 756 type identityref { 757 base layer0-types:fec-type; 758 } 759 description 760 "FEC type."; 761 } 763 leaf termination-type { 764 type identityref { 765 base layer0-types:term-type; 766 } 767 description 768 "Termination type."; 769 } 771 leaf bit-stuffing { 772 type boolean; 773 description 774 "Bit stuffing enabled/disabled."; 775 } 776 } 778 grouping wson-path-constraints { 779 description 780 "Global named path constraints configuration 781 grouping for WSON tunnel"; 783 leaf wavelength-assignment { 784 type identityref { 785 base layer0-types:wavelength-assignment; 786 } 787 description "Wavelength Allocation Method"; 788 } 789 } 791 /* 792 * Data nodes 793 */ 795 augment "/te:te/te:tunnels/te:tunnel" { 796 description 797 "Augment with additional parameters required for WSON tunnel."; 798 uses wson-tunnel-attributes; 799 } 800 /* 801 * Augment TE bandwidth 802 */ 804 /* Augment bandwidth of named-path-constraints */ 805 augment "/te:te/te:globals/te:named-path-constraints/" 806 + "te:named-path-constraint/" 807 + "te:te-bandwidth/te:technology" { 808 description "WSON bandwidth."; 809 case wson { 810 uses layer0-types:wson-path-bandwidth; 811 } 813 } 815 /* Augment bandwdith of tunnel */ 816 augment "/te:te/te:tunnels/te:tunnel/" 817 + "te:te-bandwidth/te:technology" { 818 description "WSON bandwidth."; 819 case wson { 820 uses layer0-types:wson-path-bandwidth; 821 } 822 } 824 /* Augment bandwidth of primary path */ 825 augment "/te:te/te:tunnels/te:tunnel/" 826 + "te:p2p-primary-paths/te:p2p-primary-path/" 827 + "te:te-bandwidth/te:technology" { 828 description "WSON bandwidth."; 829 case wson { 830 uses layer0-types:wson-path-bandwidth; 831 } 832 } 834 /* Augment bandwidth of reverse primary path */ 835 augment "/te:te/te:tunnels/te:tunnel/" 836 + "te:p2p-primary-paths/te:p2p-primary-path/" 837 + "te:p2p-primary-reverse-path/" 838 + "te:te-bandwidth/te:technology" { 839 description "WSON bandwidth."; 840 case wson { 841 uses layer0-types:wson-path-bandwidth; 842 } 843 } 845 /* Augment bandwidht of secondary path */ 846 augment "/te:te/te:tunnels/te:tunnel/" 847 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 848 + "te:te-bandwidth/te:technology" { 849 description "WSON bandwidth."; 850 case wson { 851 uses layer0-types:wson-path-bandwidth; 852 } 853 } 855 /* 856 * Augment TE label. 857 */ 859 /* Augment label hop of route-object-exclude-always of named-path- 860 constraints */ 861 augment "/te:te/te:globals/te:named-path-constraints/" 862 + "te:named-path-constraint/te:explicit-route-objects-always/" 863 + "te:route-object-exclude-always/te:type/te:label/" 864 + "te:label-hop/te:te-label/te:technology" { 865 description "WSON label."; 866 case wson { 867 uses layer0-types:wson-path-label; 868 } 869 } 871 /* Augment label hop of route-object-include-exclude of named-path- 872 constraints */ 873 augment "/te:te/te:globals/te:named-path-constraints/" 874 + "te:named-path-constraint/te:explicit-route-objects-always/" 875 + "te:route-object-include-exclude/te:type/te:label/" 876 + "te:label-hop/te:te-label/te:technology" { 877 description "WSON label."; 878 case wson { 879 uses layer0-types:wson-path-label; 880 } 881 } 883 /* Augment label restrictions for the path-in-segment of 884 named-path-constraints */ 885 augment "/te:te/te:globals/te:named-path-constraints/" 886 + "te:named-path-constraint/te:path-in-segment/" 887 + "te:label-restrictions/te:label-restriction" { 888 description "WSON label."; 889 uses layer0-types:layer0-label-restriction; 890 } 892 /* Augment label restrictions start for the path-in-segment 893 of named-path-constraints */ 894 augment "/te:te/te:globals/te:named-path-constraints/" 895 + "te:named-path-constraint/te:path-in-segment/" 896 + "te:label-restrictions/" 897 + "te:label-restriction/te:label-start/" 898 + "te:te-label/te:technology" { 899 description "WSON label."; 900 case wson { 901 uses layer0-types:wson-link-label; 902 } 904 } 906 /* Augment label restrictions end for the path-in-segment of 907 named-path-constraints */ 908 augment "/te:te/te:globals/te:named-path-constraints/" 909 + "te:named-path-constraint/te:path-in-segment/" 910 + "te:label-restrictions/" 911 + "te:label-restriction/te:label-end/" 912 + "te:te-label/te:technology" { 913 description "WSON label."; 914 case wson { 915 uses layer0-types:wson-link-label; 916 } 917 } 919 /* Augment label restrictions for the path-out-segment of 920 named-path-constraints */ 921 augment "/te:te/te:globals/te:named-path-constraints/" 922 + "te:named-path-constraint/te:path-out-segment/" 923 + "te:label-restrictions/" 924 + "te:label-restriction" { 925 description "WSON label."; 926 uses layer0-types:layer0-label-restriction; 927 } 928 /* Augment label restrictions start for the path-out-segment 929 of named-path-constraints */ 930 augment "/te:te/te:globals/te:named-path-constraints/" 931 + "te:named-path-constraint/te:path-out-segment/" 932 + "te:label-restrictions/" 933 + "te:label-restriction/te:label-start/" 934 + "te:te-label/te:technology" { 935 description "WSON label."; 936 case wson { 937 uses layer0-types:wson-link-label; 938 } 939 } 941 /* Augment label restrictions end for the path-out-segment of 942 named-path-constraints */ 943 augment "/te:te/te:globals/te:named-path-constraints/" 944 + "te:named-path-constraint/te:path-out-segment/" 945 + "te:label-restrictions/" 946 + "te:label-restriction/te:label-end/" 947 + "te:te-label/te:technology" { 948 description "WSON label."; 949 case wson { 950 uses layer0-types:wson-link-label; 951 } 952 } 954 /* Augment label hop of route-exclude 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-exclude-objects/" 959 + "te:route-object-exclude-object/te:type/te:label/" 960 + "te:label-hop/te:te-label/te:technology" { 961 description "WSON label."; 962 case wson { 963 uses layer0-types:wson-path-label; 964 } 965 } 967 /* Augment label hop of route-include of primary path */ 968 augment "/te:te/te:tunnels/te:tunnel/" 969 + "te:p2p-primary-paths/te:p2p-primary-path/" 970 + "te:optimizations/te:algorithm/te:metric/" 971 + "te:optimization-metric/te:explicit-route-include-objects/" 972 + "te:route-object-include-object/te:type/te:label/" 973 + "te:label-hop/te:te-label/te:technology" { 974 description "WSON label."; 975 case wson { 976 uses layer0-types:wson-path-label; 977 } 978 } 980 /* Augment label hop of route-object-exclude-always of primary path */ 981 augment "/te:te/te:tunnels/te:tunnel/" 982 + "te:p2p-primary-paths/te:p2p-primary-path/" 983 + "te:explicit-route-objects-always/" 984 + "te:route-object-exclude-always/te:type/te:label/" 985 + "te:label-hop/te:te-label/te:technology" { 986 description "WSON label."; 987 case wson { 988 uses layer0-types:wson-path-label; 989 } 990 } 992 /* Augment label hop of route-object-include-exclude of primary path */ 993 augment "/te:te/te:tunnels/te:tunnel/" 994 + "te:p2p-primary-paths/te:p2p-primary-path/" 995 + "te:explicit-route-objects-always/" 996 + "te:route-object-include-exclude/te:type/te:label/" 997 + "te:label-hop/te:te-label/te:technology" { 998 description "WSON label."; 999 case wson { 1000 uses layer0-types:wson-path-label; 1001 } 1002 } 1004 /* Augment label restrictions for the path-in-segment of primary path */ 1005 augment "/te:te/te:tunnels/te:tunnel/" 1006 + "te:p2p-primary-paths/te:p2p-primary-path/" 1007 + "te:path-in-segment/te:label-restrictions/" 1008 + "te:label-restriction" { 1009 description "WSON label."; 1010 uses layer0-types:layer0-label-restriction; 1011 } 1013 /* Augment label restrictions start for the path-in-segment of primary path 1014 */ 1015 augment "/te:te/te:tunnels/te:tunnel/" 1016 + "te:p2p-primary-paths/te:p2p-primary-path/" 1017 + "te:path-in-segment/te:label-restrictions/" 1018 + "te:label-restriction/te:label-start/" 1019 + "te:te-label/te:technology" { 1020 description "WSON label."; 1021 case wson { 1022 uses layer0-types:wson-link-label; 1023 } 1024 } 1026 /* Augment label restrictions end for the path-in-segment of primary path */ 1027 augment "/te:te/te:tunnels/te:tunnel/" 1028 + "te:p2p-primary-paths/te:p2p-primary-path/" 1029 + "te:path-in-segment/te:label-restrictions/" 1030 + "te:label-restriction/te:label-end/" 1031 + "te:te-label/te:technology" { 1032 description "WSON label."; 1033 case wson { 1034 uses layer0-types:wson-link-label; 1035 } 1036 } 1038 /* Augment label restrictions for the path-out-segment of primary path */ 1039 augment "/te:te/te:tunnels/te:tunnel/" 1040 + "te:p2p-primary-paths/te:p2p-primary-path/" 1041 + "te:path-out-segment/te:label-restrictions/" 1042 + "te:label-restriction" { 1043 description "WSON label."; 1044 uses layer0-types:layer0-label-restriction; 1045 } 1047 /* Augment label restrictions start for the path-out-segment of primary path 1048 */ 1049 augment "/te:te/te:tunnels/te:tunnel/" 1050 + "te:p2p-primary-paths/te:p2p-primary-path/" 1051 + "te:path-out-segment/te:label-restrictions/" 1052 + "te:label-restriction/te:label-start/" 1053 + "te:te-label/te:technology" { 1054 description "WSON label."; 1055 case wson { 1056 uses layer0-types:wson-link-label; 1057 } 1058 } 1060 /* Augment label restrictions end for the path-out-segment of primary path 1061 */ 1062 augment "/te:te/te:tunnels/te:tunnel/" 1063 + "te:p2p-primary-paths/te:p2p-primary-path/" 1064 + "te:path-out-segment/te:label-restrictions/" 1065 + "te:label-restriction/te:label-end/" 1066 + "te:te-label/te:technology" { 1067 description "WSON label."; 1068 case wson { 1069 uses layer0-types:wson-link-label; 1070 } 1071 } 1073 /* Augment label hop of path-route of primary path */ 1074 augment "/te:te/te:tunnels/te:tunnel/" 1075 + "te:p2p-primary-paths/te:p2p-primary-path/" 1076 + "te:computed-paths-properties/" 1077 + "te:computed-path-properties/te:path-properties/" 1078 + "te:path-route-objects/te:path-computed-route-object/" 1079 + "te:type/te:label/" 1080 + "te:label-hop/te:te-label/te:technology" { 1081 description "WSON label."; 1082 case wson { 1083 uses layer0-types:wson-path-label; 1085 } 1086 } 1088 /* Augment label hop of record-route of primary LSP */ 1089 augment "/te:te/te:tunnels/te:tunnel/" 1090 + "te:p2p-primary-paths/te:p2p-primary-path/" 1091 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1092 + "te:lsp-record-route-information/te:type/te:label/" 1093 + "te:label-hop/te:te-label/te:technology" { 1094 description "WSON label."; 1095 case wson { 1096 uses layer0-types:wson-path-label; 1097 } 1098 } 1100 /* Augment label hop of path-route of primary LSP */ 1101 augment "/te:te/te:tunnels/te:tunnel/" 1102 + "te:p2p-primary-paths/te:p2p-primary-path/" 1103 + "te:lsps/te:lsp/te:path-properties/" 1104 + "te:path-route-objects/te:path-computed-route-object/" 1105 + "te:type/te:label/" 1106 + "te:label-hop/te:te-label/te:technology" { 1107 description "WSON label."; 1108 case wson { 1109 uses layer0-types:wson-path-label; 1110 } 1111 } 1113 /* Augment label hop of route-exclude of reverse primary path */ 1114 augment "/te:te/te:tunnels/te:tunnel/" 1115 + "te:p2p-primary-paths/te:p2p-primary-path/" 1116 + "te:p2p-primary-reverse-path/" 1117 + "te:optimizations/te:algorithm/te:metric/" 1118 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1119 + "te:route-object-exclude-object/te:type/te:label/" 1120 + "te:label-hop/te:te-label/te:technology" { 1121 description "WSON label."; 1122 case wson { 1123 uses layer0-types:wson-path-label; 1124 } 1125 } 1127 /* Augment label hop of route-include of reverse primary path */ 1128 augment "/te:te/te:tunnels/te:tunnel/" 1129 + "te:p2p-primary-paths/te:p2p-primary-path/" 1130 + "te:p2p-primary-reverse-path/" 1131 + "te:optimizations/te:algorithm/te:metric/" 1132 + "te:optimization-metric/te:explicit-route-include-objects/" 1133 + "te:route-object-include-object/te:type/te:label/" 1134 + "te:label-hop/te:te-label/te:technology" { 1135 description "WSON label."; 1136 case wson { 1137 uses layer0-types:wson-path-label; 1138 } 1139 } 1141 /* Augment label hop of route-object-exclude-always of reverse primary path 1142 */ 1143 augment "/te:te/te:tunnels/te:tunnel/" 1144 + "te:p2p-primary-paths/te:p2p-primary-path/" 1145 + "te:p2p-primary-reverse-path/" 1146 + "te:explicit-route-objects-always/" 1147 + "te:route-object-exclude-always/" 1148 + "te:type/te:label/" 1149 + "te:label-hop/te:te-label/te:technology" { 1150 description "WSON label."; 1151 case wson { 1152 uses layer0-types:wson-path-label; 1153 } 1154 } 1156 /* Augment label hop of route-object-include-exclude of reverse primary path 1157 */ 1158 augment "/te:te/te:tunnels/te:tunnel/" 1159 + "te:p2p-primary-paths/te:p2p-primary-path/" 1160 + "te:p2p-primary-reverse-path/" 1161 + "te:explicit-route-objects-always/" 1162 + "te:route-object-include-exclude/" 1163 + "te:type/te:label/" 1164 + "te:label-hop/te:te-label/te:technology" { 1165 description "WSON label."; 1166 case wson { 1167 uses layer0-types:wson-path-label; 1168 } 1169 } 1171 /* Augment label restrictions for the path-in-segment of reverse primary 1172 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" { 1178 description "WSON label."; 1179 uses layer0-types:layer0-label-restriction; 1180 } 1182 /* Augment label restrictions start for the path-in-segment of reverse 1183 primary path */ 1184 augment "/te:te/te:tunnels/te:tunnel/" 1185 + "te:p2p-primary-paths/te:p2p-primary-path/" 1186 + "te:p2p-primary-reverse-path/" 1187 + "te:path-in-segment/te:label-restrictions/" 1188 + "te:label-restriction/te:label-start/" 1189 + "te:te-label/te:technology" { 1190 description "WSON label."; 1191 case wson { 1192 uses layer0-types:wson-link-label; 1193 } 1194 } 1195 /* Augment label restrictions end for the path-in-segment of reverse primary 1196 path */ 1197 augment "/te:te/te:tunnels/te:tunnel/" 1198 + "te:p2p-primary-paths/te:p2p-primary-path/" 1199 + "te:p2p-primary-reverse-path/" 1200 + "te:path-in-segment/te:label-restrictions/" 1201 + "te:label-restriction/te:label-end/" 1202 + "te:te-label/te:technology" { 1203 description "WSON label."; 1204 case wson { 1205 uses layer0-types:wson-link-label; 1206 } 1207 } 1209 /* Augment label restrictions for the path-out-segment of reverse primary 1210 path */ 1211 augment "/te:te/te:tunnels/te:tunnel/" 1212 + "te:p2p-primary-paths/te:p2p-primary-path/" 1213 + "te:p2p-primary-reverse-path/" 1214 + "te:path-out-segment/te:label-restrictions/" 1215 + "te:label-restriction" { 1216 description "WSON label."; 1217 uses layer0-types:layer0-label-restriction; 1218 } 1219 /* Augment label restrictions start for the path-out-segment of reverse 1220 primary path */ 1221 augment "/te:te/te:tunnels/te:tunnel/" 1222 + "te:p2p-primary-paths/te:p2p-primary-path/" 1223 + "te:p2p-primary-reverse-path/" 1224 + "te:path-out-segment/te:label-restrictions/" 1225 + "te:label-restriction/te:label-start/" 1226 + "te:te-label/te:technology" { 1227 description "WSON label."; 1228 case wson { 1229 uses layer0-types:wson-link-label; 1230 } 1231 } 1233 /* Augment label restrictions end for the path-out-segment of reverse 1234 primary path */ 1235 augment "/te:te/te:tunnels/te:tunnel/" 1236 + "te:p2p-primary-paths/te:p2p-primary-path/" 1237 + "te:p2p-primary-reverse-path/" 1238 + "te:path-out-segment/te:label-restrictions/" 1239 + "te:label-restriction/te:label-end/" 1240 + "te:te-label/te:technology" { 1241 description "WSON label."; 1242 case wson { 1243 uses layer0-types:wson-link-label; 1244 } 1245 } 1247 /* Augment label hop of path-route of reverse primary path */ 1248 augment "/te:te/te:tunnels/te:tunnel/" 1249 + "te:p2p-primary-paths/te:p2p-primary-path/" 1250 + "te:p2p-primary-reverse-path/" 1251 + "te:computed-paths-properties/" 1252 + "te:computed-path-properties/te:path-properties/" 1253 + "te:path-route-objects/te:path-computed-route-object/" 1254 + "te:type/te:label/" 1255 + "te:label-hop/te:te-label/te:technology" { 1256 description "WSON label."; 1257 case wson { 1258 uses layer0-types:wson-path-label; 1259 } 1260 } 1262 /* Augment label hop of record-route of reverse primary LSP */ 1263 augment "/te:te/te:tunnels/te:tunnel/" 1264 + "te:p2p-primary-paths/te:p2p-primary-path/" 1265 + "te:p2p-primary-reverse-path/" 1266 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1267 + "te:lsp-record-route-information/te:type/te:label/" 1268 + "te:label-hop/te:te-label/te:technology" { 1269 description "WSON label."; 1270 case wson { 1271 uses layer0-types:wson-path-label; 1272 } 1273 } 1275 /* Augment label hop of path-route of reverse primary LSP */ 1276 augment "/te:te/te:tunnels/te:tunnel/" 1277 + "te:p2p-primary-paths/te:p2p-primary-path/" 1278 + "te:p2p-primary-reverse-path/" 1279 + "te:lsps/te:lsp/te:path-properties/" 1280 + "te:path-route-objects/te:path-computed-route-object/" 1281 + "te:type/te:label/" 1282 + "te:label-hop/te:te-label/te:technology" { 1283 description "WSON label."; 1284 case wson { 1285 uses layer0-types:wson-path-label; 1286 } 1287 } 1289 /* Augment label hop of route-exclude of secondary path */ 1290 augment "/te:te/te:tunnels/te:tunnel/" 1291 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1292 + "te:optimizations/te:algorithm/te:metric/" 1293 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1294 + "te:route-object-exclude-object/te:type/te:label/" 1295 + "te:label-hop/te:te-label/te:technology" { 1296 description "WSON label."; 1297 case wson { 1298 uses layer0-types:wson-path-label; 1299 } 1300 } 1302 /* Augment label hop of route-include of secondary path */ 1303 augment "/te:te/te:tunnels/te:tunnel/" 1304 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1305 + "te:optimizations/te:algorithm/te:metric/" 1306 + "te:optimization-metric/te:explicit-route-include-objects/" 1307 + "te:route-object-include-object/te:type/te:label/" 1308 + "te:label-hop/te:te-label/te:technology" { 1310 description "WSON label."; 1311 case wson { 1312 uses layer0-types:wson-path-label; 1313 } 1314 } 1316 /* Augment label hop of route-object-exclude-always of secondary path */ 1317 augment "/te:te/te:tunnels/te:tunnel/" 1318 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1319 + "te:explicit-route-objects-always/" 1320 + "te:route-object-exclude-always/te:type/te:label/" 1321 + "te:label-hop/te:te-label/te:technology" { 1322 description "WSON label."; 1323 case wson { 1324 uses layer0-types:wson-path-label; 1325 } 1326 } 1328 /* Augment label hop of route-object-include-exclude of secondary path */ 1329 augment "/te:te/te:tunnels/te:tunnel/" 1330 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1331 + "te:explicit-route-objects-always/" 1332 + "te:route-object-include-exclude/te:type/te:label/" 1333 + "te:label-hop/te:te-label/te:technology" { 1334 description "WSON label."; 1335 case wson { 1336 uses layer0-types:wson-path-label; 1337 } 1338 } 1340 /* Augment label restrictions for the path-in-segment of secondary path */ 1341 augment "/te:te/te:tunnels/te:tunnel/" 1342 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1343 + "te:path-in-segment/te:label-restrictions/" 1344 + "te:label-restriction" { 1345 description "WSON label."; 1346 uses layer0-types:layer0-label-restriction; 1347 } 1349 /* Augment label restrictions start for the path-in-segment of secondary 1350 path */ 1351 augment "/te:te/te:tunnels/te:tunnel/" 1352 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1353 + "te:path-in-segment/te:label-restrictions/" 1354 + "te:label-restriction/te:label-start/" 1355 + "te:te-label/te:technology" { 1356 description "WSON label."; 1357 case wson { 1358 uses layer0-types:wson-link-label; 1359 } 1360 } 1362 /* Augment label restrictions end for the path-in-segment of secondary path 1363 */ 1364 augment "/te:te/te:tunnels/te:tunnel/" 1365 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1366 + "te:path-in-segment/te:label-restrictions/" 1367 + "te:label-restriction/te:label-end/" 1368 + "te:te-label/te:technology" { 1369 description "WSON label."; 1370 case wson { 1371 uses layer0-types:wson-link-label; 1372 } 1373 } 1375 /* Augment label restrictions for the path-out-segment of secondary path */ 1376 augment "/te:te/te:tunnels/te:tunnel/" 1377 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1378 + "te:path-out-segment/te:label-restrictions/" 1379 + "te:label-restriction" { 1380 description "WSON label."; 1381 uses layer0-types:layer0-label-restriction; 1382 } 1384 /* Augment label restrictions start for the path-out-segment of secondary 1385 path */ 1386 augment "/te:te/te:tunnels/te:tunnel/" 1387 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1388 + "te:path-out-segment/te:label-restrictions/" 1389 + "te:label-restriction/te:label-start/" 1390 + "te:te-label/te:technology" { 1391 description "WSON label."; 1392 case wson { 1393 uses layer0-types:wson-link-label; 1394 } 1395 } 1397 /* Augment label restrictions end for the path-out-segment of secondary path 1398 */ 1399 augment "/te:te/te:tunnels/te:tunnel/" 1400 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1401 + "te:path-out-segment/te:label-restrictions/" 1402 + "te:label-restriction/te:label-end/" 1403 + "te:te-label/te:technology" { 1404 description "WSON label."; 1405 case wson { 1406 uses layer0-types:wson-link-label; 1407 } 1408 } 1410 /* Augment label hop of path-route of secondary path */ 1411 augment "/te:te/te:tunnels/te:tunnel/" 1412 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1413 + "te:computed-paths-properties/" 1414 + "te:computed-path-properties/te:path-properties/" 1415 + "te:path-route-objects/" 1416 + "te:path-computed-route-object/te:type/te:label/" 1417 + "te:label-hop/te:te-label/te:technology" { 1418 description "WSON label."; 1419 case wson { 1420 uses layer0-types:wson-path-label; 1421 } 1422 } 1424 /* Augment label hop of record-route of secondary LSP */ 1425 augment "/te:te/te:tunnels/te:tunnel/" 1426 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1427 + "te:lsps/te:lsp/te:lsp-record-route-information/" 1428 + "te:lsp-record-route-information/te:type/te:label/" 1429 + "te:label-hop/te:te-label/te:technology" { 1430 description "WSON label."; 1431 case wson { 1432 uses layer0-types:wson-path-label; 1433 } 1434 } 1436 /* Augment label hop of path-route of secondary LSP */ 1437 augment "/te:te/te:tunnels/te:tunnel/" 1438 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1439 + "te:lsps/te:lsp/te:path-properties/" 1440 + "te:path-route-objects/" 1441 + "te:path-computed-route-object/te:type/te:label/" 1442 + "te:label-hop/te:te-label/te:technology" { 1443 description "WSON label."; 1444 case wson { 1445 uses layer0-types:wson-path-label; 1446 } 1447 } 1449 /* Augment label hop of record-route of LSP */ 1450 augment "/te:te/te:lsps-state/" 1451 + "te:lsp/te:lsp-record-route-information/" 1452 + "te:lsp-record-route-information/te:type/te:label/" 1453 + "te:label-hop/te:te-label/te:technology" { 1454 description "WSON label."; 1455 case wson { 1456 uses layer0-types:wson-path-label; 1457 } 1458 } 1460 augment "/te:tunnels-rpc/te:input/te:tunnel-info/" 1461 + "tepc:path-request" { 1462 description 1463 "Augment with additional constraints WSON 1464 tunnel."; 1465 uses wson-tunnel-attributes; 1466 uses wson-path-constraints; 1467 } 1468 } 1470 1472 4. Security Considerations 1474 The configuration, state, and action data defined in this document 1475 are designed to be accessed via a management protocol with a secure 1476 transport layer, such as NETCONF [RFC6241]. The NETCONF access 1477 control model [RFC8341] provides the means to restrict access for 1478 particular NETCONF users to a preconfigured subset of all available 1479 NETCONF protocol operations and content. 1481 A number of configuration data nodes defined in this document are 1482 writable/deletable (i.e., "config true") These data nodes may be 1483 considered sensitive or vulnerable in some network environments. 1485 5. IANA Considerations 1487 This document registers the following namespace URIs in the IETF XML 1488 registry [RFC3688]: 1490 -------------------------------------------------------------------- 1491 URI: urn:ietf:params:xml:ns:yang:ietf-wson-tunnel 1492 Registrant Contact: The IESG. 1493 XML: N/A, the requested URI is an XML namespace. 1494 -------------------------------------------------------------------- 1496 This document registers the following YANG modules in the YANG 1497 Module 1499 Names registry [RFC7950]: 1501 -------------------------------------------------------------------- 1502 name: ietf-wson-tunnel 1503 namespace: urn:ietf:params:xml:ns:yang:ietf-wson-tunnel 1504 reference: RFC XXXX (TDB) 1505 -------------------------------------------------------------------- 1506 6. Acknowledgments 1508 This document was prepared using 2-Word-v2.0.template.dot. 1510 7. References 1512 7.1. Normative References 1514 [TE-Tunnel] T. Saad, Ed., X. Liu, V. Beeram, H. Shah, and I. 1515 Bryskin, "A YANG Data Model for Traffic Engineering 1516 Tunnels and Interfaces", draft-ietf-teas-yang-te, work in 1517 progress. 1519 [WSON-TOPO] Y. Lee, Ed., D. Dhody, A. Guo, V. Lopez, D. King, B. 1520 Yoon, and R. Vilalta, "A Yang Data Model for WSON Optical 1521 Networks", draft-ietf-ccamp-wson-yang, work in progress. 1523 [TE-PC] Italo Busi (Ed.), Sergio Belotti (Ed.), "Yang model for 1524 requesting Path Computation", draft-ietf-teas-yang-path- 1525 computation, work in progress. 1527 [OTN-TOPO] H. Zheng, et al, "A YANG Data Model for Optical Transport 1528 Network Topology", draft-ietf-ccamp-otn-topo-yang, work in 1529 progress. 1531 7.2. Informative References 1533 [RFC3688] M. Mealling, "The IETF XML Registry", RFC 3688, January 1534 2004. 1536 [RFC6241] R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., 1537 and A. Bierman, Ed., "Network Configuration Protocol 1538 (NETCONF)", RFC 6241, June 2011. 1540 [RFC7446] Y. Lee, G. Bernstein, D. Li, W. Imajuku, "Routing and 1541 Wavelength Assignment Information Model for Wavelength 1542 Switched Optical Networks", RFC 7446, Feburary 2015. 1544 [RFC7579] G. Bernstein, Y. Lee, D. Li, W. Imajuku, "General Network 1545 Element Constraint Encoding for GMPLS Controlled 1546 Networks", RFC 7579, June 2015. 1548 [RFC7581] G. Bernstein, Y. Lee, D. Li, W. Imajuku, "Routing and 1549 Wavelength Assignment Information Encoding for Wavelength 1550 Switched Optical Networks", RFC 7581, June 2015. 1552 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1553 RFC 7950, August 2016. 1555 [RFC8340] M. Bjorklund and L. Berger, Ed., "YANG Tree Diagrams", RFC 1556 8340, March 2018. 1558 [RFC8341] A. Bierman and M. Bjorklund, "Network Configuration Access 1559 Control Model", March 2018. 1561 8. Contributors 1563 Italo Busi 1564 Huawei 1565 Email: Italo.Busi@huawei.com 1567 Authors' Addresses 1569 Young Lee (ed.) 1570 Huawei Technologies 1571 5340 Legacy Drive, Building 3 1572 Plano, TX 75023 1573 USA 1575 Phone: (469) 277-5838 1576 Email: leeyoung@huawei.com 1578 Dhruv Dhody 1579 Huawei Technologies India Pvt. Ltd, 1580 Near EPIP Industrial Area, Kundalahalli Village, Whitefield, 1581 Bangalore - 560 037 [H1-2A-245] 1583 Email: dhruv.dhody@huawei.com 1585 Aihua Guo 1586 Huawei 1587 Email: aihuaguo@huawei.com 1589 Victor Lopez 1590 Telefonica 1591 Email: victor.lopezalvarez@telefonica.com 1592 Daniel King 1593 University of Lancaster 1594 Email: d.king@lancaster.ac.uk 1596 Bin Yeong Yoon 1597 ETRI 1598 218 Gaijeongro, Yuseong-gu 1599 Daejeon, Korea 1600 Email: byyun@etri.re.kr 1602 Ricard Vilalta 1603 CTTC 1604 Email: ricard.vilalta@cttc.es