idnits 2.17.1 draft-ietf-ccamp-flexigrid-media-channel-yang-01.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 (October 22, 2018) is 2012 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 (-16) exists of draft-ietf-ccamp-flexigrid-yang-02 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-17 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 CCAMP Working Group J.E. Lopez de Vergara 2 Internet Draft Universidad Autonoma de Madrid 3 Intended status: Standards Track D. Perdices 4 Expires: April 25, 2019 Naudit HPCN 5 V. Lopez 6 O. Gonzalez de Dios 7 Telefonica I+D/GCTO 8 D. King 9 Lancaster University 10 Y. Lee 11 Huawei 12 G. Galimberti 13 Cisco Photonics Srl 14 October 22, 2018 16 YANG data model for Flexi-Grid media-channels 17 draft-ietf-ccamp-flexigrid-media-channel-yang-01.txt 19 Status of this Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. This document may not be modified, 23 and derivative works of it may not be created, except to publish it 24 as an RFC and to translate it into languages other than English. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF), its areas, and its working groups. Note that 28 other groups may also distribute working documents as Internet- 29 Drafts. 31 Internet-Drafts are draft documents valid for a maximum of six 32 months and may be updated, replaced, or obsoleted by other documents 33 at any time. It is inappropriate to use Internet-Drafts as 34 reference material or to cite them other than as "work in progress." 36 The list of current Internet-Drafts can be accessed at 37 http://www.ietf.org/ietf/1id-abstracts.txt 39 The list of Internet-Draft Shadow Directories can be accessed at 40 http://www.ietf.org/shadow.html 42 This Internet-Draft will expire on April 25, 2019. 44 Copyright Notice 46 Copyright (c) 2018 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (http://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with 54 respect to this document. Code Components extracted from this 55 document must include Simplified BSD License text as described in 56 Section 4.e of the Trust Legal Provisions and are provided without 57 warranty as described in the Simplified BSD License. 59 Abstract 61 This document defines a YANG model for managing flexi-grid optical 62 media channels, complementing the information provided by the 63 flexi-grid TED model. 64 It is also grounded on other defined YANG abstract models. 66 Table of Contents 68 1. Introduction .............................................. 2 69 2. Conventions used in this document ......................... 3 70 3. Flexi-grid media-channel overview ......................... 3 71 4. Example of use ............................................ 4 72 5. Media Channel YANG Model .................................. 5 73 5.1. YANG Model - Tree .................................... 5 74 5.2. YANG Model - Code .................................... 20 75 5.3. License .............................................. 41 76 6. Security Considerations ................................... 42 77 7. IANA Considerations ....................................... 42 78 8. References ................................................ 42 79 8.1. Normative References ................................. 42 80 8.2. Informative References ............................... 43 81 9. Contributors .............................................. 43 82 10. Acknowledgments ........................................... 43 83 Authors' Addresses ............................................ 43 85 1. Introduction 87 Transport networks are evolving from current DWDM systems towards 88 elastic optical networks, based on flexi-grid transmission and 89 switching technologies [RFC7698]. Such technology aims at increasing 90 both transport network scalability and flexibility, allowing the 91 optimization of bandwidth usage. 93 While [I-D.draft-ietf-ccamp-flexigrid-yang] focuses on flexi-grid 94 objects such as nodes, transponders and links, this document presents 95 a YANG model for the flexi-grid media-channel. This YANG module 96 defines the whole path from a source transponder or node to the 97 destination through a number of intermediate nodes in the flexi-grid 98 network. 100 This document identifies the flexi-grid media-channel components, 101 parameters and their values, characterizes the features and the 102 performances of the flexi-grid elements. An application example is 103 provided towards the end of the document to better understand 104 their utility. 106 2. Conventions used in this document 108 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 109 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 110 document are to be interpreted as described in [RFC2119]. 112 In this document, these words will appear with that interpretation 113 only when in ALL CAPS. Lower case uses of these words are not to be 114 interpreted as carrying RFC-2119 significance. 116 In this document, the characters ">>" preceding an indented line(s) 117 indicates a compliance requirement statement using the key words 118 listed above. This convention aids reviewers in quickly identifying 119 or finding the explicit compliance requirements of this RFC. 121 3. Flexi-grid media-channel overview 123 The present model defines a flexi-grid media-channel mainly 124 composed of: 125 - source address 126 - source flexi-grid port 127 - source flexi-grid transponder 128 - destination address 129 - destination flexi-grid port 130 - destination flexi-grid transponder 131 - A list of links that defines the path 132 - Other optical attributes 134 Each path can be a media-channel (only defined by source and 135 destination node) or a network media-channel (additionally needs 136 source and destination transponders). Therefore, all the attributes 137 are optional to support both situations. 139 This is achieved by a combination of the traffic engineering tunnel 140 attributes explained in [I-D.draft-ietf-teas-yang-te] and augments 141 when necessary. For instance, source address, source flexi-grid 142 transponder, destination address and destination flexi-grid 143 transponder attributes are directly taken from tunnel, whereas other 144 attributes such as source flexi-grid port, destination flexi-grid 145 port are defined, as they are specific for flexi-grid. 147 4. Example of use 149 In order to explain how this model is used, we provide the following 150 example. An optical network usually has multiple transponders, 151 switches (nodes) and links between them. Figure 1 shows a simple 152 topology, where two physical paths interconnect two optical 153 transponders. 154 Media channel 155 <==================================================> 156 Path x 157 <--------------------------------------------------> 159 +----------+ +----------+ 160 Link 1 |Flexi-grid| Link 2 |Flexi-grid| Link 3 161 .--->| node |<-------->| node |<---. 162 | | B | | C | | 163 | +----------+ +----------+ | 164 v v 165 /-----------\ /-----------\ 166 / Flexi-grid \ / Flexi-grid \ 167 | transponder | | transponder | 168 \ A / \ E / 169 \-----------/ \-----------/ 170 ^ ^ 171 | +----------+ | 172 | Link 4 |Flexi-grid| Link 5 | 173 '------------>| node |<-----------' 174 | D | 175 +----------+ 176 <--------------------------------------------------> 177 Path y 179 Figure 1. Topology example. 181 After the nodes, links and transponders have been defined using 182 [I-D.draft-ietf-ccamp-flexigrid-yang], we can configure the 183 media-channel from the information we have stored in the 184 flexi-grid TED, by querying which elements are available, and 185 planning the resources that have to be provided on each situation. 186 Note that every element in the flexi-grid TED has a reference, and 187 this is the way in which they are called in the media-channel. 189 1. Depending on the case, it is possible to define either the source 190 and destination node ports, or the source and destination node 191 and transponder. In our case, we would define a network media 192 channel, with source transponder A and source node B, and 193 destination transponder E and destination node C. Thus, we are 194 going to follow path x. 196 2. Then, for each link in the path x, we indicate which channel we 197 are going to use, providing information about the slots, and what 198 nodes are connected. 200 3. Finally, the flexi-grid TED has to be updated with each element 201 usage status each time a media channel is created or torn down. 203 5. Media Channel YANG Model 205 5.1. YANG Model - Tree 207 module: ietf-flex-grid-media-channel 208 augment /te:te/te:tunnels/te:tunnel: 209 +--rw src-client-signal? identityref 210 +--rw dst-client-signal? identityref 211 +--rw fec-type? identityref 212 +--rw termination-type? identityref 213 +--rw bit-stuffing? boolean 214 augment /te:te/te:globals/te:named-path-constraints/ 215 te:named-path-constraint/te:te-bandwidth/te:technology: 216 +--:(flex-grid) 217 +--rw bandwidth-type? identityref 218 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: 219 +--:(flex-grid) 220 +--rw bandwidth-type? identityref 221 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 222 te:p2p-primary-path/te:te-bandwidth/te:technology: 223 +--:(flex-grid) 224 +--rw bandwidth-type? identityref 225 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 226 te:p2p-primary-path/te:p2p-reverse-primary-path/te:te-bandwidth/ 227 te:technology: 228 +--:(flex-grid) 229 +--rw bandwidth-type? identityref 230 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 231 te:p2p-secondary-path/te:te-bandwidth/te:technology: 232 +--:(flex-grid) 233 +--rw bandwidth-type? identityref 235 augment /te:te/te:globals/te:named-path-constraints/ 236 te:named-path-constraint/te:explicit-route-objects/ 237 te:route-object-exclude-always/te:type/te:label/te:label-hop/ 238 te:te-label/te:technology: 239 +--:(flex-grid) 240 +--rw (single-or-super-channel)? 241 +--:(single) 242 | +--rw central-frequency? frequency-thz 243 | +--rw slot-width? frequency-ghz 244 +--:(super) 245 +--rw subcarrier-channels* [central-frequency] 246 +--rw central-frequency frequency-thz 247 +--rw slot-width? frequency-ghz 248 augment /te:te/te:globals/te:named-path-constraints/ 249 te:named-path-constraint/te:explicit-route-objects/ 250 te:route-object-include-exclude/te:type/te:label/te:label-hop/ 251 te:te-label/te:technology: 252 +--:(flex-grid) 253 +--rw (single-or-super-channel)? 254 +--:(single) 255 | +--rw central-frequency? frequency-thz 256 | +--rw slot-width? frequency-ghz 257 +--:(super) 258 +--rw subcarrier-channels* [central-frequency] 259 +--rw central-frequency frequency-thz 260 +--rw slot-width? frequency-ghz 261 augment /te:te/te:globals/te:named-path-constraints/ 262 te:named-path-constraint/te:path-in-segment/te:forward/ 263 te:label-restrictions/te:label-restriction: 264 +--rw grid-type? identityref 265 +--rw priority? uint8 266 +--rw flex-grid 267 +--rw nominal-central-frequency-granularity? frequency-ghz 268 +--rw slot-width-granularity? frequency-ghz 269 augment /te:te/te:globals/te:named-path-constraints/ 270 te:named-path-constraint/te:path-in-segment/te:forward/ 271 te:label-restrictions/te:label-restriction/te:label-start/ 272 te:te-label/te:technology: 273 +--:(flex-grid) 274 +--rw central-frequency? frequency-thz 275 augment /te:te/te:globals/te:named-path-constraints/ 276 te:named-path-constraint/te:path-in-segment/te:forward/ 277 te:label-restrictions/te:label-restriction/te:label-end/ 278 te:te-label/te:technology: 279 +--:(flex-grid) 280 +--rw central-frequency? frequency-thz 282 augment /te:te/te:globals/te:named-path-constraints/ 283 te:named-path-constraint/te:path-in-segment/te:reverse/ 284 te:label-restrictions/te:label-restriction: 285 +--rw grid-type? identityref 286 +--rw priority? uint8 287 +--rw flex-grid 288 +--rw nominal-central-frequency-granularity? frequency-ghz 289 +--rw slot-width-granularity? frequency-ghz 290 augment /te:te/te:globals/te:named-path-constraints/ 291 te:named-path-constraint/te:path-in-segment/te:reverse/ 292 te:label-restrictions/te:label-restriction/te:label-start/ 293 te:te-label/te:technology: 294 +--:(flex-grid) 295 +--rw central-frequency? frequency-thz 296 augment /te:te/te:globals/te:named-path-constraints/ 297 te:named-path-constraint/te:path-in-segment/te:reverse/ 298 te:label-restrictions/te:label-restriction/te:label-end/ 299 te:te-label/te:technology: 300 +--:(flex-grid) 301 +--rw central-frequency? frequency-thz 302 augment /te:te/te:globals/te:named-path-constraints/ 303 te:named-path-constraint/te:path-out-segment/te:forward/ 304 te:label-restrictions/te:label-restriction: 305 +--rw grid-type? identityref 306 +--rw priority? uint8 307 +--rw flex-grid 308 +--rw nominal-central-frequency-granularity? frequency-ghz 309 +--rw slot-width-granularity? frequency-ghz 310 augment /te:te/te:globals/te:named-path-constraints/ 311 te:named-path-constraint/te:path-out-segment/te:forward/ 312 te:label-restrictions/te:label-restriction/te:label-start/ 313 te:te-label/te:technology: 314 +--:(flex-grid) 315 +--rw central-frequency? frequency-thz 316 augment /te:te/te:globals/te:named-path-constraints/ 317 te:named-path-constraint/te:path-out-segment/te:forward/ 318 te:label-restrictions/te:label-restriction/te:label-end/ 319 te:te-label/te:technology: 320 +--:(flex-grid) 321 +--rw central-frequency? frequency-thz 322 augment /te:te/te:globals/te:named-path-constraints/ 323 te:named-path-constraint/te:path-out-segment/te:reverse/ 324 te:label-restrictions/te:label-restriction: 325 +--rw grid-type? identityref 326 +--rw priority? uint8 327 +--rw flex-grid 328 +--rw nominal-central-frequency-granularity? frequency-ghz 329 +--rw slot-width-granularity? frequency-ghz 331 augment /te:te/te:globals/te:named-path-constraints/ 332 te:named-path-constraint/te:path-out-segment/te:reverse/ 333 te:label-restrictions/te:label-restriction/te:label-start/ 334 te:te-label/te:technology: 335 +--:(flex-grid) 336 +--rw central-frequency? frequency-thz 337 augment /te:te/te:globals/te:named-path-constraints/ 338 te:named-path-constraint/te:path-out-segment/te:reverse/ 339 te:label-restrictions/te:label-restriction/te:label-end/ 340 te:te-label/te:technology: 341 +--:(flex-grid) 342 +--rw central-frequency? frequency-thz 343 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 344 te:p2p-primary-path/te:optimizations/te:algorithm/te:metric/ 345 te:optimization-metric/te:explicit-route-exclude-objects/ 346 te:route-object-exclude-object/te:type/te:label/te:label-hop/ 347 te:te-label/te:technology: 348 +--:(flex-grid) 349 +--rw (single-or-super-channel)? 350 +--:(single) 351 | +--rw central-frequency? frequency-thz 352 | +--rw slot-width? frequency-ghz 353 +--:(super) 354 +--rw subcarrier-channels* [central-frequency] 355 +--rw central-frequency frequency-thz 356 +--rw slot-width? frequency-ghz 357 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 358 te:p2p-primary-path/te:optimizations/te:algorithm/te:metric/ 359 te:optimization-metric/te:explicit-route-include-objects/ 360 te:route-object-include-object/te:type/te:label/te:label-hop/ 361 te:te-label/te:technology: 362 +--:(flex-grid) 363 +--rw (single-or-super-channel)? 364 +--:(single) 365 | +--rw central-frequency? frequency-thz 366 | +--rw slot-width? frequency-ghz 367 +--:(super) 368 +--rw subcarrier-channels* [central-frequency] 369 +--rw central-frequency frequency-thz 370 +--rw slot-width? frequency-ghz 372 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 373 te:p2p-primary-path/te:explicit-route-objects/ 374 te:route-object-exclude-always/te:type/te:label/te:label-hop/ 375 te:te-label/te:technology: 376 +--:(flex-grid) 377 +--rw (single-or-super-channel)? 378 +--:(single) 379 | +--rw central-frequency? frequency-thz 380 | +--rw slot-width? frequency-ghz 381 +--:(super) 382 +--rw subcarrier-channels* [central-frequency] 383 +--rw central-frequency frequency-thz 384 +--rw slot-width? frequency-ghz 385 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 386 te:p2p-primary-path/te:explicit-route-objects/ 387 te:route-object-include-exclude/te:type/te:label/te:label-hop/ 388 te:te-label/te:technology: 389 +--:(flex-grid) 390 +--rw (single-or-super-channel)? 391 +--:(single) 392 | +--rw central-frequency? frequency-thz 393 | +--rw slot-width? frequency-ghz 394 +--:(super) 395 +--rw subcarrier-channels* [central-frequency] 396 +--rw central-frequency frequency-thz 397 +--rw slot-width? frequency-ghz 398 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 399 te:p2p-primary-path/te:path-in-segment/te:forward/ 400 te:label-restrictions/te:label-restriction: 401 +--rw grid-type? identityref 402 +--rw priority? uint8 403 +--rw flex-grid 404 +--rw nominal-central-frequency-granularity? frequency-ghz 405 +--rw slot-width-granularity? frequency-ghz 406 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 407 te:p2p-primary-path/te:path-in-segment/te:forward/ 408 te:label-restrictions/te:label-restriction/te:label-start/ 409 te:te-label/te:technology: 410 +--:(flex-grid) 411 +--rw central-frequency? frequency-thz 412 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 413 te:p2p-primary-path/te:path-in-segment/te:forward/ 414 te:label-restrictions/te:label-restriction/te:label-end/ 415 te:te-label/te:technology: 416 +--:(flex-grid) 417 +--rw central-frequency? frequency-thz 419 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 420 te:p2p-primary-path/te:path-in-segment/te:reverse/ 421 te:label-restrictions/te:label-restriction: 422 +--rw grid-type? identityref 423 +--rw priority? uint8 424 +--rw flex-grid 425 +--rw nominal-central-frequency-granularity? frequency-ghz 426 +--rw slot-width-granularity? frequency-ghz 427 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 428 te:p2p-primary-path/te:path-in-segment/te:reverse/ 429 te:label-restrictions/te:label-restriction/te:label-start/ 430 te:te-label/te:technology: 431 +--:(flex-grid) 432 +--rw central-frequency? frequency-thz 433 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 434 te:p2p-primary-path/te:path-in-segment/te:reverse/ 435 te:label-restrictions/te:label-restriction/te:label-end/ 436 te:te-label/te:technology: 437 +--:(flex-grid) 438 +--rw central-frequency? frequency-thz 439 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 440 te:p2p-primary-path/te:path-out-segment/te:forward/ 441 te:label-restrictions/te:label-restriction: 442 +--rw grid-type? identityref 443 +--rw priority? uint8 444 +--rw flex-grid 445 +--rw nominal-central-frequency-granularity? frequency-ghz 446 +--rw slot-width-granularity? frequency-ghz 447 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 448 te:p2p-primary-path/te:path-out-segment/te:forward/ 449 te:label-restrictions/te:label-restriction/te:label-start/ 450 te:te-label/te:technology: 451 +--:(flex-grid) 452 +--rw central-frequency? frequency-thz 453 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 454 te:p2p-primary-path/te:path-out-segment/te:forward/ 455 te:label-restrictions/te:label-restriction/te:label-end/ 456 te:te-label/te:technology: 457 +--:(flex-grid) 458 +--rw central-frequency? frequency-thz 459 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 460 te:p2p-primary-path/te:path-out-segment/te:reverse/ 461 te:label-restrictions/te:label-restriction: 462 +--rw grid-type? identityref 463 +--rw priority? uint8 464 +--rw flex-grid 465 +--rw nominal-central-frequency-granularity? frequency-ghz 466 +--rw slot-width-granularity? frequency-ghz 468 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 469 te:p2p-primary-path/te:path-out-segment/te:reverse/ 470 te:label-restrictions/te:label-restriction/te:label-start/ 471 te:te-label/te:technology: 472 +--:(flex-grid) 473 +--rw central-frequency? frequency-thz 474 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 475 te:p2p-primary-path/te:path-out-segment/te:reverse/ 476 te:label-restrictions/te:label-restriction/te:label-end/ 477 te:te-label/te:technology: 478 +--:(flex-grid) 479 +--rw central-frequency? frequency-thz 480 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 481 te:p2p-primary-path/te:state/te:path-properties/ 482 te:path-route-objects/te:path-computed-route-object/te:state/ 483 te:type/te:label/te:label-hop/te:te-label/te:technology: 484 +--:(flex-grid) 485 +--ro (single-or-super-channel)? 486 +--:(single) 487 | +--ro central-frequency? frequency-thz 488 | +--ro slot-width? frequency-ghz 489 +--:(super) 490 +--ro subcarrier-channels* [central-frequency] 491 +--ro central-frequency frequency-thz 492 +--ro slot-width? frequency-ghz 493 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 494 te:p2p-primary-path/te:state/te:lsps/te:lsp/ 495 te:lsp-record-route-subobjects/te:record-route-subobject/te:type/ 496 te:label/te:label-hop/te:te-label/te:technology: 497 +--:(flex-grid) 498 +--ro (single-or-super-channel)? 499 +--:(single) 500 | +--ro central-frequency? frequency-thz 501 | +--ro slot-width? frequency-ghz 502 +--:(super) 503 +--ro subcarrier-channels* [central-frequency] 504 +--ro central-frequency frequency-thz 505 +--ro slot-width? frequency-ghz 506 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 507 te:p2p-primary-path/te:state/te:lsps/te:lsp/te:path-properties/ 508 te:path-route-objects/te:path-computed-route-object/te:state/ 509 te:type/te:label/te:label-hop/te:te-label/te:technology: 510 +--:(flex-grid) 511 +--ro (single-or-super-channel)? 512 +--:(single) 513 | +--ro central-frequency? frequency-thz 514 | +--ro slot-width? frequency-ghz 515 +--:(super) 516 +--ro subcarrier-channels* [central-frequency] 517 +--ro central-frequency frequency-thz 518 +--ro slot-width? frequency-ghz 520 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 521 te:p2p-primary-path/te:p2p-reverse-primary-path/ 522 te:optimizations/te:algorithm/te:metric/te:optimization-metric/ 523 te:explicit-route-exclude-objects/te:route-object-exclude-object/ 524 te:type/te:label/te:label-hop/te:te-label/te:technology: 525 +--:(flex-grid) 526 +--rw (single-or-super-channel)? 527 +--:(single) 528 | +--rw central-frequency? frequency-thz 529 | +--rw slot-width? frequency-ghz 530 +--:(super) 531 +--rw subcarrier-channels* [central-frequency] 532 +--rw central-frequency frequency-thz 533 +--rw slot-width? frequency-ghz 534 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 535 te:p2p-primary-path/te:p2p-reverse-primary-path/ 536 te:optimizations/te:algorithm/te:metric/te:optimization-metric/ 537 te:explicit-route-include-objects/te:route-object-include-object/ 538 te:type/te:label/te:label-hop/te:te-label/te:technology: 539 +--:(flex-grid) 540 +--rw (single-or-super-channel)? 541 +--:(single) 542 | +--rw central-frequency? frequency-thz 543 | +--rw slot-width? frequency-ghz 544 +--:(super) 545 +--rw subcarrier-channels* [central-frequency] 546 +--rw central-frequency frequency-thz 547 +--rw slot-width? frequency-ghz 548 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 549 te:p2p-primary-path/te:p2p-reverse-primary-path/ 550 te:explicit-route-objects/te:route-object-exclude-always/ 551 te:type/te:label/te:label-hop/te:te-label/te:technology: 552 +--:(flex-grid) 553 +--rw (single-or-super-channel)? 554 +--:(single) 555 | +--rw central-frequency? frequency-thz 556 | +--rw slot-width? frequency-ghz 557 +--:(super) 558 +--rw subcarrier-channels* [central-frequency] 559 +--rw central-frequency frequency-thz 560 +--rw slot-width? frequency-ghz 562 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 563 te:p2p-primary-path/te:p2p-reverse-primary-path/ 564 te:explicit-route-objects/te:route-object-include-exclude/ 565 te:type/te:label/te:label-hop/te:te-label/te:technology: 566 +--:(flex-grid) 567 +--rw (single-or-super-channel)? 568 +--:(single) 569 | +--rw central-frequency? frequency-thz 570 | +--rw slot-width? frequency-ghz 571 +--:(super) 572 +--rw subcarrier-channels* [central-frequency] 573 +--rw central-frequency frequency-thz 574 +--rw slot-width? frequency-ghz 575 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 576 te:p2p-primary-path/te:p2p-reverse-primary-path/ 577 te:path-in-segment/te:forward/te:label-restrictions/ 578 te:label-restriction: 579 +--rw grid-type? identityref 580 +--rw priority? uint8 581 +--rw flex-grid 582 +--rw nominal-central-frequency-granularity? frequency-ghz 583 +--rw slot-width-granularity? frequency-ghz 584 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 585 te:p2p-primary-path/te:p2p-reverse-primary-path/te:path-in-segment/ 586 te:forward/te:label-restrictions/te:label-restriction/ 587 te:label-start/te:te-label/te:technology: 588 +--:(flex-grid) 589 +--rw central-frequency? frequency-thz 590 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 591 te:p2p-primary-path/te:p2p-reverse-primary-path/te:path-in-segment/ 592 te:forward/te:label-restrictions/te:label-restriction/te:label-end/ 593 te:te-label/te:technology: 594 +--:(flex-grid) 595 +--rw central-frequency? frequency-thz 596 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 597 te:p2p-primary-path/te:p2p-reverse-primary-path/ 598 te:path-in-segment/te:reverse/te:label-restrictions/ 599 te:label-restriction: 600 +--rw grid-type? identityref 601 +--rw priority? uint8 602 +--rw flex-grid 603 +--rw nominal-central-frequency-granularity? frequency-ghz 604 +--rw slot-width-granularity? frequency-ghz 605 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 606 te:p2p-primary-path/te:p2p-reverse-primary-path/ 607 te:path-in-segment/te:reverse/te:label-restrictions/ 608 te:label-restriction/te:label-start/te:te-label/te:technology: 609 +--:(flex-grid) 610 +--rw central-frequency? frequency-thz 612 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 613 te:p2p-primary-path/te:p2p-reverse-primary-path/ 614 te:path-in-segment/te:reverse/te:label-restrictions/ 615 te:label-restriction/te:label-end/te:te-label/te:technology: 616 +--:(flex-grid) 617 +--rw central-frequency? frequency-thz 618 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 619 te:p2p-primary-path/te:p2p-reverse-primary-path/ 620 te:path-out-segment/te:forward/te:label-restrictions/ 621 te:label-restriction: 622 +--rw grid-type? identityref 623 +--rw priority? uint8 624 +--rw flex-grid 625 +--rw nominal-central-frequency-granularity? frequency-ghz 626 +--rw slot-width-granularity? frequency-ghz 627 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 628 te:p2p-primary-path/te:p2p-reverse-primary-path/ 629 te:path-out-segment/te:forward/te:label-restrictions/ 630 te:label-restriction/te:label-start/te:te-label/te:technology: 631 +--:(flex-grid) 632 +--rw central-frequency? frequency-thz 633 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 634 te:p2p-primary-path/te:p2p-reverse-primary-path/ 635 te:path-out-segment/te:forward/te:label-restrictions/ 636 te:label-restriction/te:label-end/te:te-label/te:technology: 637 +--:(flex-grid) 638 +--rw central-frequency? frequency-thz 639 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 640 te:p2p-primary-path/te:p2p-reverse-primary-path/ 641 te:path-out-segment/te:reverse/te:label-restrictions/ 642 te:label-restriction: 643 +--rw grid-type? identityref 644 +--rw priority? uint8 645 +--rw flex-grid 646 +--rw nominal-central-frequency-granularity? frequency-ghz 647 +--rw slot-width-granularity? frequency-ghz 648 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 649 te:p2p-primary-path/te:p2p-reverse-primary-path/ 650 te:path-out-segment/te:reverse/te:label-restrictions/ 651 te:label-restriction/te:label-start/te:te-label/te:technology: 652 +--:(flex-grid) 653 +--rw central-frequency? frequency-thz 654 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 655 te:p2p-primary-path/te:p2p-reverse-primary-path/ 656 te:path-out-segment/te:reverse/te:label-restrictions/ 657 te:label-restriction/te:label-end/te:te-label/te:technology: 658 +--:(flex-grid) 659 +--rw central-frequency? frequency-thz 661 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 662 te:p2p-primary-path/te:p2p-reverse-primary-path/ 663 te:state/te:path-properties/te:path-route-objects/ 664 te:path-computed-route-object/te:state/te:type/te:label/ 665 te:label-hop/te:te-label/te:technology: 666 +--:(flex-grid) 667 +--ro (single-or-super-channel)? 668 +--:(single) 669 | +--ro central-frequency? frequency-thz 670 | +--ro slot-width? frequency-ghz 671 +--:(super) 672 +--ro subcarrier-channels* [central-frequency] 673 +--ro central-frequency frequency-thz 674 +--ro slot-width? frequency-ghz 675 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 676 te:p2p-primary-path/te:p2p-reverse-primary-path/te:state/te:lsps/ 677 te:lsp/te:lsp-record-route-subobjects/te:record-route-subobject/ 678 te:type/te:label/te:label-hop/te:te-label/te:technology: 679 +--:(flex-grid) 680 +--ro (single-or-super-channel)? 681 +--:(single) 682 | +--ro central-frequency? frequency-thz 683 | +--ro slot-width? frequency-ghz 684 +--:(super) 685 +--ro subcarrier-channels* [central-frequency] 686 +--ro central-frequency frequency-thz 687 +--ro slot-width? frequency-ghz 688 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/ 689 te:p2p-primary-path/te:p2p-reverse-primary-path/ 690 te:state/te:lsps/te:lsp/te:path-properties/te:path-route-objects/ 691 te:path-computed-route-object/te:state/te:type/te:label/ 692 te:label-hop/te:te-label/te:technology: 693 +--:(flex-grid) 694 +--ro (single-or-super-channel)? 695 +--:(single) 696 | +--ro central-frequency? frequency-thz 697 | +--ro slot-width? frequency-ghz 698 +--:(super) 699 +--ro subcarrier-channels* [central-frequency] 700 +--ro central-frequency frequency-thz 701 +--ro slot-width? frequency-ghz 703 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 704 te:p2p-secondary-path/te:optimizations/te:algorithm/te:metric/ 705 te:optimization-metric/te:explicit-route-exclude-objects/ 706 te:route-object-exclude-object/te:type/te:label/te:label-hop/ 707 te:te-label/te:technology: 708 +--:(flex-grid) 709 +--rw (single-or-super-channel)? 710 +--:(single) 711 | +--rw central-frequency? frequency-thz 712 | +--rw slot-width? frequency-ghz 713 +--:(super) 714 +--rw subcarrier-channels* [central-frequency] 715 +--rw central-frequency frequency-thz 716 +--rw slot-width? frequency-ghz 717 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 718 te:p2p-secondary-path/te:optimizations/te:algorithm/te:metric/ 719 te:optimization-metric/te:explicit-route-include-objects/ 720 te:route-object-include-object/te:type/te:label/te:label-hop/ 721 te:te-label/te:technology: 722 +--:(flex-grid) 723 +--rw (single-or-super-channel)? 724 +--:(single) 725 | +--rw central-frequency? frequency-thz 726 | +--rw slot-width? frequency-ghz 727 +--:(super) 728 +--rw subcarrier-channels* [central-frequency] 729 +--rw central-frequency frequency-thz 730 +--rw slot-width? frequency-ghz 731 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 732 te:p2p-secondary-path/te:explicit-route-objects/ 733 te:route-object-exclude-always/te:type/te:label/ 734 te:label-hop/te:te-label/te:technology: 735 +--:(flex-grid) 736 +--rw (single-or-super-channel)? 737 +--:(single) 738 | +--rw central-frequency? frequency-thz 739 | +--rw slot-width? frequency-ghz 740 +--:(super) 741 +--rw subcarrier-channels* [central-frequency] 742 +--rw central-frequency frequency-thz 743 +--rw slot-width? frequency-ghz 745 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 746 te:p2p-secondary-path/te:explicit-route-objects/ 747 te:route-object-include-exclude/te:type/te:label/ 748 te:label-hop/te:te-label/te:technology: 749 +--:(flex-grid) 750 +--rw (single-or-super-channel)? 751 +--:(single) 752 | +--rw central-frequency? frequency-thz 753 | +--rw slot-width? frequency-ghz 754 +--:(super) 755 +--rw subcarrier-channels* [central-frequency] 756 +--rw central-frequency frequency-thz 757 +--rw slot-width? frequency-ghz 758 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 759 te:p2p-secondary-path/te:path-in-segment/te:forward/ 760 te:label-restrictions/te:label-restriction: 761 +--rw grid-type? identityref 762 +--rw priority? uint8 763 +--rw flex-grid 764 +--rw nominal-central-frequency-granularity? frequency-ghz 765 +--rw slot-width-granularity? frequency-ghz 766 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 767 te:p2p-secondary-path/te:path-in-segment/te:forward/ 768 te:label-restrictions/te:label-restriction/te:label-start/ 769 te:te-label/te:technology: 770 +--:(flex-grid) 771 +--rw central-frequency? frequency-thz 772 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 773 te:p2p-secondary-path/te:path-in-segment/te:forward/ 774 te:label-restrictions/te:label-restriction/te:label-end/ 775 te:te-label/te:technology: 776 +--:(flex-grid) 777 +--rw central-frequency? frequency-thz 778 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 779 te:p2p-secondary-path/te:path-in-segment/te:reverse/ 780 te:label-restrictions/te:label-restriction: 781 +--rw grid-type? identityref 782 +--rw priority? uint8 783 +--rw flex-grid 784 +--rw nominal-central-frequency-granularity? frequency-ghz 785 +--rw slot-width-granularity? frequency-ghz 786 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 787 te:p2p-secondary-path/te:path-in-segment/te:reverse/ 788 te:label-restrictions/te:label-restriction/te:label-start/ 789 te:te-label/te:technology: 790 +--:(flex-grid) 791 +--rw central-frequency? frequency-thz 793 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 794 te:p2p-secondary-path/te:path-in-segment/te:reverse/ 795 te:label-restrictions/te:label-restriction/te:label-end/ 796 te:te-label/te:technology: 797 +--:(flex-grid) 798 +--rw central-frequency? frequency-thz 799 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 800 te:p2p-secondary-path/te:path-out-segment/te:forward/ 801 te:label-restrictions/te:label-restriction: 802 +--rw grid-type? identityref 803 +--rw priority? uint8 804 +--rw flex-grid 805 +--rw nominal-central-frequency-granularity? frequency-ghz 806 +--rw slot-width-granularity? frequency-ghz 807 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 808 te:p2p-secondary-path/te:path-out-segment/te:forward/ 809 te:label-restrictions/te:label-restriction/te:label-start/ 810 te:te-label/te:technology: 811 +--:(flex-grid) 812 +--rw central-frequency? frequency-thz 813 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 814 te:p2p-secondary-path/te:path-out-segment/te:forward/ 815 te:label-restrictions/te:label-restriction/te:label-end/ 816 te:te-label/te:technology: 817 +--:(flex-grid) 818 +--rw central-frequency? frequency-thz 819 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 820 te:p2p-secondary-path/te:path-out-segment/te:reverse/ 821 te:label-restrictions/te:label-restriction: 822 +--rw grid-type? identityref 823 +--rw priority? uint8 824 +--rw flex-grid 825 +--rw nominal-central-frequency-granularity? frequency-ghz 826 +--rw slot-width-granularity? frequency-ghz 827 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 828 te:p2p-secondary-path/te:path-out-segment/te:reverse/ 829 te:label-restrictions/te:label-restriction/te:label-start/ 830 te:te-label/te:technology: 831 +--:(flex-grid) 832 +--rw central-frequency? frequency-thz 833 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 834 te:p2p-secondary-path/te:path-out-segment/te:reverse/ 835 te:label-restrictions/te:label-restriction/te:label-end/ 836 te:te-label/te:technology: 837 +--:(flex-grid) 838 +--rw central-frequency? frequency-thz 840 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 841 te:p2p-secondary-path/te:state/te:path-properties/ 842 te:path-route-objects/te:path-computed-route-object/ 843 te:state/te:type/te:label/te:label-hop/te:te-label/ 844 te:technology: 845 +--:(flex-grid) 846 +--ro (single-or-super-channel)? 847 +--:(single) 848 | +--ro central-frequency? frequency-thz 849 | +--ro slot-width? frequency-ghz 850 +--:(super) 851 +--ro subcarrier-channels* [central-frequency] 852 +--ro central-frequency frequency-thz 853 +--ro slot-width? frequency-ghz 854 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 855 te:p2p-secondary-path/te:state/te:lsps/te:lsp/ 856 te:lsp-record-route-subobjects/te:record-route-subobject/ 857 te:type/te:label/te:label-hop/te:te-label/te:technology: 858 +--:(flex-grid) 859 +--ro (single-or-super-channel)? 860 +--:(single) 861 | +--ro central-frequency? frequency-thz 862 | +--ro slot-width? frequency-ghz 863 +--:(super) 864 +--ro subcarrier-channels* [central-frequency] 865 +--ro central-frequency frequency-thz 866 +--ro slot-width? frequency-ghz 867 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 868 te:p2p-secondary-path/te:state/te:lsps/te:lsp/ 869 te:path-properties/te:path-route-objects/ 870 te:path-computed-route-object/te:state/te:type/te:label/ 871 te:label-hop/te:te-label/te:technology: 872 +--:(flex-grid) 873 +--ro (single-or-super-channel)? 874 +--:(single) 875 | +--ro central-frequency? frequency-thz 876 | +--ro slot-width? frequency-ghz 877 +--:(super) 878 +--ro subcarrier-channels* [central-frequency] 879 +--ro central-frequency frequency-thz 880 +--ro slot-width? frequency-ghz 882 augment /te:te/te:lsps-state/te:lsp/te:lsp-record-route-subobjects/ 883 te:record-route-subobject/te:type/te:label/te:label-hop/ 884 te:te-label/te:technology: 885 +--:(flex-grid) 886 +--ro (single-or-super-channel)? 887 +--:(single) 888 | +--ro central-frequency? frequency-thz 889 | +--ro slot-width? frequency-ghz 890 +--:(super) 891 +--ro subcarrier-channels* [central-frequency] 892 +--ro central-frequency frequency-thz 893 +--ro slot-width? frequency-ghz 894 augment /te:tunnels-rpc/te:input/te:tunnel-info/tepc:path-request: 895 +---- src-client-signal? identityref 896 +---- dst-client-signal? identityref 897 +---- fec-type? identityref 898 +---- termination-type? identityref 899 +---- bit-stuffing? boolean 900 +---- wavelength-assignment? identityref 902 5.2. YANG Model - Code 904 file "ietf-flexi-grid-media-channel@2018-10-22.yang" 906 module ietf-flex-grid-media-channel { 907 yang-version 1.1; 909 namespace "urn:ietf:params:xml:ns:yang:ietf-flex-grid-media-channel"; 910 prefix "flex-grid-tunnel"; 912 import ietf-te { prefix "te"; } 913 import ietf-layer0-types{ prefix "layer0-types"; } 914 import ietf-te-path-computation { prefix "tepc"; } 915 import ietf-otn-types { prefix "otn-types"; } 917 organization 918 "IETF CCAMP Working Group"; 920 contact 921 "WG Web: 922 WG List: 924 WG Chair: Daniele Ceccarelli 925 927 WG Chair: Fatai Zhang 928 930 Editor: Jorge E. Lopez de Vergara 931 Editor: Daniel Perdices Burrero 932 Editor: Victor Lopez Alvarez 933 Editor: Young Lee "; 934 description 935 "This module defines a model for Flex-grid Tunnel Services."; 937 revision "2018-10-22" { 938 description 939 "version 1"; 940 reference "version 1"; 941 } 943 /* Groupings. */ 945 grouping flex-grid-tunnel-attributes { 946 description "Parameters for flexgrid tunnel."; 948 leaf src-client-signal { 949 type identityref { 950 base otn-types:client-signal; 951 } 952 description 953 "Client signal at the source endpoint of 954 the tunnel."; 955 } 957 leaf dst-client-signal { 958 type identityref { 959 base otn-types:client-signal; 960 } 961 description 962 "Client signal at the destination endpoint of 963 the tunnel."; 964 } 966 leaf fec-type { 967 type identityref { 968 base layer0-types:fec-type; 969 } 970 description 971 "FEC type."; 972 } 974 leaf termination-type { 975 type identityref { 976 base layer0-types:term-type; 977 } 978 description 979 "Termination type."; 980 } 981 leaf bit-stuffing { 982 type boolean; 983 description 984 "Bit stuffing enabled/disabled."; 985 } 986 } 988 grouping flex-grid-path-constraints { 989 description 990 "Global named path constraints configuration 991 grouping for flexi-grid tunnel"; 993 leaf wavelength-assignment { 994 type identityref { 995 base layer0-types:wavelength-assignment; 996 } 997 description "Wavelength Allocation Method"; 998 } 999 } 1001 /* 1002 * Data nodes 1003 */ 1005 augment "/te:te/te:tunnels/te:tunnel" { 1006 description 1007 "Augment with additional parameters required for flex-grid 1008 tunnel."; 1009 uses flex-grid-tunnel-attributes; 1010 } 1012 /* 1013 * Augment TE bandwidth 1014 */ 1016 /* Augment bandwidth of named-path-constraints */ 1017 augment "/te:te/te:globals/te:named-path-constraints/" 1018 + "te:named-path-constraint/" 1019 + "te:te-bandwidth/te:technology" { 1020 description "flex-grid bandwidth."; 1021 case flex-grid { 1022 uses layer0-types:flex-grid-path-bandwidth; 1023 } 1024 } 1025 /* Augment bandwdith of tunnel */ 1026 augment "/te:te/te:tunnels/te:tunnel/" 1027 + "te:te-bandwidth/te:technology" { 1028 description "flex-grid bandwidth."; 1029 case flex-grid { 1030 uses layer0-types:flex-grid-path-bandwidth; 1031 } 1032 } 1034 /* Augment bandwidth of primary path */ 1035 augment "/te:te/te:tunnels/te:tunnel/" 1036 + "te:p2p-primary-paths/te:p2p-primary-path/" 1037 + "te:te-bandwidth/te:technology" { 1038 description "flex-grid bandwidth."; 1039 case flex-grid { 1040 uses layer0-types:flex-grid-path-bandwidth; 1041 } 1042 } 1044 /* Augment bandwidth of reverse primary path */ 1045 augment "/te:te/te:tunnels/te:tunnel/" 1046 + "te:p2p-primary-paths/te:p2p-primary-path/" 1047 + "te:p2p-reverse-primary-path/" 1048 + "te:te-bandwidth/te:technology" { 1049 description "flex-grid bandwidth."; 1050 case flex-grid { 1051 uses layer0-types:flex-grid-path-bandwidth; 1052 } 1053 } 1055 /* Augment bandwidht of secondary path */ 1056 augment "/te:te/te:tunnels/te:tunnel/" 1057 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1058 + "te:te-bandwidth/te:technology" { 1059 description "flex-grid bandwidth."; 1060 case flex-grid { 1061 uses layer0-types:flex-grid-path-bandwidth; 1062 } 1063 } 1065 /* 1066 * Augment TE label. 1067 */ 1069 /* Augment label hop of route-object-exclude-always of 1070 named-path-constraints */ 1071 augment "/te:te/te:globals/te:named-path-constraints/" 1072 + "te:named-path-constraint/te:explicit-route-objects/" 1073 + "te:route-object-exclude-always/te:type/te:label/" 1074 + "te:label-hop/te:te-label/te:technology" { 1075 description "flex-grid label."; 1076 case flex-grid { 1077 uses layer0-types:flex-grid-path-label; 1078 } 1079 } 1081 /* Augment label hop of route-object-include-exclude of 1082 named-path-constraints */ 1083 augment "/te:te/te:globals/te:named-path-constraints/" 1084 + "te:named-path-constraint/te:explicit-route-objects/" 1085 + "te:route-object-include-exclude/te:type/te:label/" 1086 + "te:label-hop/te:te-label/te:technology" { 1087 description "flex-grid label."; 1088 case flex-grid { 1089 uses layer0-types:flex-grid-path-label; 1090 } 1091 } 1093 /* Augment label restrictions for the forwarding direction of 1094 path-in-segment of named-path-constraints */ 1095 augment "/te:te/te:globals/te:named-path-constraints/" 1096 + "te:named-path-constraint/te:path-in-segment/" 1097 + "te:forward/te:label-restrictions/" 1098 + "te:label-restriction" { 1099 description "flex-grid label."; 1100 uses layer0-types:flex-grid-label-restriction; 1101 } 1103 /* Augment label restrictions start for the forwarding direction of 1104 path-in-segment of named-path-constraints */ 1105 augment "/te:te/te:globals/te:named-path-constraints/" 1106 + "te:named-path-constraint/te:path-in-segment/" 1107 + "te:forward/te:label-restrictions/" 1108 + "te:label-restriction/te:label-start/" 1109 + "te:te-label/te:technology" { 1110 description "flex-grid label."; 1111 case flex-grid { 1112 uses layer0-types:flex-grid-link-label; 1113 } 1114 } 1115 /* Augment label restrictions end for the forwarding direction of 1116 path-in-segment of named-path-constraints */ 1117 augment "/te:te/te:globals/te:named-path-constraints/" 1118 + "te:named-path-constraint/te:path-in-segment/" 1119 + "te:forward/te:label-restrictions/" 1120 + "te:label-restriction/te:label-end/" 1121 + "te:te-label/te:technology" { 1122 description "flex-grid label."; 1123 case flex-grid { 1124 uses layer0-types:flex-grid-link-label; 1125 } 1126 } 1128 /* Augment label restrictions for the reverse direction of 1129 path-in-segment of named-path-constraints */ 1130 augment "/te:te/te:globals/te:named-path-constraints/" 1131 + "te:named-path-constraint/te:path-in-segment/" 1132 + "te:reverse/te:label-restrictions/" 1133 + "te:label-restriction" { 1134 description "flex-grid label."; 1135 uses layer0-types:flex-grid-label-restriction; 1136 } 1138 /* Augment label restrictions start for the reverse direction of 1139 path-in-segment of named-path-constraints */ 1140 augment "/te:te/te:globals/te:named-path-constraints/" 1141 + "te:named-path-constraint/te:path-in-segment/" 1142 + "te:reverse/te:label-restrictions/" 1143 + "te:label-restriction/te:label-start/" 1144 + "te:te-label/te:technology" { 1145 description "flex-grid label."; 1146 case flex-grid { 1147 uses layer0-types:flex-grid-link-label; 1148 } 1149 } 1151 /* Augment label restrictions end for the reverse direction of 1152 path-in-segment of named-path-constraints */ 1153 augment "/te:te/te:globals/te:named-path-constraints/" 1154 + "te:named-path-constraint/te:path-in-segment/" 1155 + "te:reverse/te:label-restrictions/" 1156 + "te:label-restriction/te:label-end/" 1157 + "te:te-label/te:technology" { 1158 description "flex-grid label."; 1159 case flex-grid { 1160 uses layer0-types:flex-grid-link-label; 1161 } 1162 } 1163 /* Augment label restrictions for the forwarding direction of 1164 path-out-segment of named-path-constraints */ 1165 augment "/te:te/te:globals/te:named-path-constraints/" 1166 + "te:named-path-constraint/te:path-out-segment/" 1167 + "te:forward/te:label-restrictions/" 1168 + "te:label-restriction" { 1169 description "flex-grid label."; 1170 uses layer0-types:flex-grid-label-restriction; 1171 } 1172 /* Augment label restrictions start for the forwarding direction of 1173 path-out-segment of named-path-constraints */ 1174 augment "/te:te/te:globals/te:named-path-constraints/" 1175 + "te:named-path-constraint/te:path-out-segment/" 1176 + "te:forward/te:label-restrictions/" 1177 + "te:label-restriction/te:label-start/" 1178 + "te:te-label/te:technology" { 1179 description "flex-grid label."; 1180 case flex-grid { 1181 uses layer0-types:flex-grid-link-label; 1182 } 1183 } 1184 /* Augment label restrictions end for the forwarding direction of 1185 path-out-segment of named-path-constraints */ 1186 augment "/te:te/te:globals/te:named-path-constraints/" 1187 + "te:named-path-constraint/te:path-out-segment/" 1188 + "te:forward/te:label-restrictions/" 1189 + "te:label-restriction/te:label-end/" 1190 + "te:te-label/te:technology" { 1191 description "flex-grid label."; 1192 case flex-grid { 1193 uses layer0-types:flex-grid-link-label; 1194 } 1195 } 1196 /* Augment label restrictions for the reverse direction of 1197 path-out-segment of named-path-constraints */ 1198 augment "/te:te/te:globals/te:named-path-constraints/" 1199 + "te:named-path-constraint/te:path-out-segment/" 1200 + "te:reverse/te:label-restrictions/" 1201 + "te:label-restriction" { 1202 description "flex-grid label."; 1203 uses layer0-types:flex-grid-label-restriction; 1204 } 1205 /* Augment label restrictions start for the reverse direction of 1206 path-out-segment of named-path-constraints */ 1207 augment "/te:te/te:globals/te:named-path-constraints/" 1208 + "te:named-path-constraint/te:path-out-segment/" 1209 + "te:reverse/te:label-restrictions/" 1210 + "te:label-restriction/te:label-start/" 1211 + "te:te-label/te:technology" { 1212 description "flex-grid label."; 1213 case flex-grid { 1214 uses layer0-types:flex-grid-link-label; 1215 } 1216 } 1217 /* Augment label restrictions end for the reverse direction of 1218 path-out-segment of named-path-constraints */ 1219 augment "/te:te/te:globals/te:named-path-constraints/" 1220 + "te:named-path-constraint/te:path-out-segment/" 1221 + "te:reverse/te:label-restrictions/" 1222 + "te:label-restriction/te:label-end/" 1223 + "te:te-label/te:technology" { 1224 description "flex-grid label."; 1225 case flex-grid { 1226 uses layer0-types:flex-grid-link-label; 1227 } 1228 } 1230 /* Augment label hop of route-exclude of primary path */ 1231 augment "/te:te/te:tunnels/te:tunnel/" 1232 + "te:p2p-primary-paths/te:p2p-primary-path/" 1233 + "te:optimizations/te:algorithm/te:metric/" 1234 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1235 + "te:route-object-exclude-object/te:type/te:label/" 1236 + "te:label-hop/te:te-label/te:technology" { 1237 description "flex-grid label."; 1238 case flex-grid { 1239 uses layer0-types:flex-grid-path-label; 1240 } 1241 } 1243 /* Augment label hop of route-include of primary path */ 1244 augment "/te:te/te:tunnels/te:tunnel/" 1245 + "te:p2p-primary-paths/te:p2p-primary-path/" 1246 + "te:optimizations/te:algorithm/te:metric/" 1247 + "te:optimization-metric/te:explicit-route-include-objects/" 1248 + "te:route-object-include-object/te:type/te:label/" 1249 + "te:label-hop/te:te-label/te:technology" { 1250 description "flex-grid label."; 1251 case flex-grid { 1252 uses layer0-types:flex-grid-path-label; 1253 } 1254 } 1256 /* Augment label hop of route-object-exclude-always of primary path */ 1257 augment "/te:te/te:tunnels/te:tunnel/" 1258 + "te:p2p-primary-paths/te:p2p-primary-path/" 1259 + "te:explicit-route-objects/" 1260 + "te:route-object-exclude-always/te:type/te:label/" 1261 + "te:label-hop/te:te-label/te:technology" { 1262 description "flex-grid label."; 1263 case flex-grid { 1264 uses layer0-types:flex-grid-path-label; 1265 } 1266 } 1267 /* Augment label hop of route-object-include-exclude of primary path 1268 */ 1269 augment "/te:te/te:tunnels/te:tunnel/" 1270 + "te:p2p-primary-paths/te:p2p-primary-path/" 1271 + "te:explicit-route-objects/" 1272 + "te:route-object-include-exclude/te:type/te:label/" 1273 + "te:label-hop/te:te-label/te:technology" { 1274 description "flex-grid label."; 1275 case flex-grid { 1276 uses layer0-types:flex-grid-path-label; 1277 } 1278 } 1279 /* Augment label restrictions for the forwarding direction of 1280 path-in-segment of primary path */ 1281 augment "/te:te/te:tunnels/te:tunnel/" 1282 + "te:p2p-primary-paths/te:p2p-primary-path/" 1283 + "te:path-in-segment/te:forward/te:label-restrictions/" 1284 + "te:label-restriction" { 1285 description "flex-grid label."; 1286 uses layer0-types:flex-grid-label-restriction; 1287 } 1288 /* Augment label restrictions start for the forwarding direction of 1289 path-in-segment of primary path */ 1290 augment "/te:te/te:tunnels/te:tunnel/" 1291 + "te:p2p-primary-paths/te:p2p-primary-path/" 1292 + "te:path-in-segment/te:forward/te:label-restrictions/" 1293 + "te:label-restriction/te:label-start/" 1294 + "te:te-label/te:technology" { 1295 description "flex-grid label."; 1296 case flex-grid { 1297 uses layer0-types:flex-grid-link-label; 1298 } 1299 } 1300 /* Augment label restrictions end for the forwarding direction of 1301 path-in-segment of primary path */ 1302 augment "/te:te/te:tunnels/te:tunnel/" 1303 + "te:p2p-primary-paths/te:p2p-primary-path/" 1304 + "te:path-in-segment/te:forward/te:label-restrictions/" 1305 + "te:label-restriction/te:label-end/" 1306 + "te:te-label/te:technology" { 1307 description "flex-grid label."; 1308 case flex-grid { 1309 uses layer0-types:flex-grid-link-label; 1310 } 1311 } 1312 /* Augment label restrictions for the reverse direction of 1313 path-in-segment of primary path */ 1314 augment "/te:te/te:tunnels/te:tunnel/" 1315 + "te:p2p-primary-paths/te:p2p-primary-path/" 1316 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1317 + "te:label-restriction" { 1318 description "flex-grid label."; 1319 uses layer0-types:flex-grid-label-restriction; 1320 } 1321 /* Augment label restrictions start for the reverse direction of 1322 path-in-segment of primary path */ 1323 augment "/te:te/te:tunnels/te:tunnel/" 1324 + "te:p2p-primary-paths/te:p2p-primary-path/" 1325 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1326 + "te:label-restriction/te:label-start/" 1327 + "te:te-label/te:technology" { 1328 description "flex-grid label."; 1329 case flex-grid { 1330 uses layer0-types:flex-grid-link-label; 1331 } 1332 } 1333 /* Augment label restrictions end for the reverse direction of 1334 path-in-segment of primary path */ 1335 augment "/te:te/te:tunnels/te:tunnel/" 1336 + "te:p2p-primary-paths/te:p2p-primary-path/" 1337 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1338 + "te:label-restriction/te:label-end/" 1339 + "te:te-label/te:technology" { 1340 description "flex-grid label."; 1341 case flex-grid { 1342 uses layer0-types:flex-grid-link-label; 1343 } 1344 } 1345 /* Augment label restrictions for the forwarding direction of 1346 path-out-segment of primary path */ 1347 augment "/te:te/te:tunnels/te:tunnel/" 1348 + "te:p2p-primary-paths/te:p2p-primary-path/" 1349 + "te:path-out-segment/te:forward/te:label-restrictions/" 1350 + "te:label-restriction" { 1351 description "flex-grid label."; 1352 uses layer0-types:flex-grid-label-restriction; 1353 } 1354 /* Augment label restrictions start for the forwarding direction of 1355 path-out-segment of primary path */ 1356 augment "/te:te/te:tunnels/te:tunnel/" 1357 + "te:p2p-primary-paths/te:p2p-primary-path/" 1358 + "te:path-out-segment/te:forward/te:label-restrictions/" 1359 + "te:label-restriction/te:label-start/" 1360 + "te:te-label/te:technology" { 1361 description "flex-grid label."; 1362 case flex-grid { 1363 uses layer0-types:flex-grid-link-label; 1364 } 1365 } 1366 /* Augment label restrictions end for the forwarding direction of 1367 path-out-segment of primary path */ 1368 augment "/te:te/te:tunnels/te:tunnel/" 1369 + "te:p2p-primary-paths/te:p2p-primary-path/" 1370 + "te:path-out-segment/te:forward/te:label-restrictions/" 1371 + "te:label-restriction/te:label-end/" 1372 + "te:te-label/te:technology" { 1373 description "flex-grid label."; 1374 case flex-grid { 1375 uses layer0-types:flex-grid-link-label; 1376 } 1377 } 1378 /* Augment label restrictions for the reverse direction of 1379 path-out-segment of primary path */ 1380 augment "/te:te/te:tunnels/te:tunnel/" 1381 + "te:p2p-primary-paths/te:p2p-primary-path/" 1382 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1383 + "te:label-restriction" { 1384 description "flex-grid label."; 1385 uses layer0-types:flex-grid-label-restriction; 1386 } 1387 /* Augment label restrictions start for the reverse direction of 1388 path-out-segment of primary path */ 1389 augment "/te:te/te:tunnels/te:tunnel/" 1390 + "te:p2p-primary-paths/te:p2p-primary-path/" 1391 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1392 + "te:label-restriction/te:label-start/" 1393 + "te:te-label/te:technology" { 1394 description "flex-grid label."; 1395 case flex-grid { 1396 uses layer0-types:flex-grid-link-label; 1397 } 1398 } 1399 /* Augment label restrictions end for the reverse direction of 1400 path-out-segment of primary path */ 1401 augment "/te:te/te:tunnels/te:tunnel/" 1402 + "te:p2p-primary-paths/te:p2p-primary-path/" 1403 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1404 + "te:label-restriction/te:label-end/" 1405 + "te:te-label/te:technology" { 1406 description "flex-grid label."; 1407 case flex-grid { 1408 uses layer0-types:flex-grid-link-label; 1409 } 1410 } 1411 /* Augment label hop of path-route of primary path */ 1412 augment "/te:te/te:tunnels/te:tunnel/" 1413 + "te:p2p-primary-paths/te:p2p-primary-path/" 1414 + "te:state/te:path-properties/" 1415 + "te:path-route-objects/te:path-computed-route-object/" 1416 + "te:state/te:type/te:label/" 1417 + "te:label-hop/te:te-label/te:technology" { 1418 description "flex-grid label."; 1419 case flex-grid { 1420 uses layer0-types:flex-grid-path-label; 1421 } 1422 } 1423 /* Augment label hop of record-route of primary LSP */ 1424 augment "/te:te/te:tunnels/te:tunnel/" 1425 + "te:p2p-primary-paths/te:p2p-primary-path/" 1426 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1427 + "te:record-route-subobject/te:type/te:label/" 1428 + "te:label-hop/te:te-label/te:technology" { 1429 description "flex-grid label."; 1430 case flex-grid { 1431 uses layer0-types:flex-grid-path-label; 1432 } 1433 } 1434 /* Augment label hop of path-route of primary LSP */ 1435 augment "/te:te/te:tunnels/te:tunnel/" 1436 + "te:p2p-primary-paths/te:p2p-primary-path/" 1437 + "te:state/te:lsps/te:lsp/te:path-properties/" 1438 + "te:path-route-objects/te:path-computed-route-object/" 1439 + "te:state/te:type/te:label/" 1440 + "te:label-hop/te:te-label/te:technology" { 1441 description "flex-grid label."; 1442 case flex-grid { 1443 uses layer0-types:flex-grid-path-label; 1444 } 1445 } 1446 /* Augment label hop of route-exclude of reverse primary path */ 1447 augment "/te:te/te:tunnels/te:tunnel/" 1448 + "te:p2p-primary-paths/te:p2p-primary-path/" 1449 + "te:p2p-reverse-primary-path/" 1450 + "te:optimizations/te:algorithm/te:metric/" 1451 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1452 + "te:route-object-exclude-object/te:type/te:label/" 1453 + "te:label-hop/te:te-label/te:technology" { 1454 description "flex-grid label."; 1455 case flex-grid { 1456 uses layer0-types:flex-grid-path-label; 1457 } 1458 } 1459 /* Augment label hop of route-include of reverse primary path */ 1460 augment "/te:te/te:tunnels/te:tunnel/" 1461 + "te:p2p-primary-paths/te:p2p-primary-path/" 1462 + "te:p2p-reverse-primary-path/" 1463 + "te:optimizations/te:algorithm/te:metric/" 1464 + "te:optimization-metric/te:explicit-route-include-objects/" 1465 + "te:route-object-include-object/te:type/te:label/" 1466 + "te:label-hop/te:te-label/te:technology" { 1467 description "flex-grid label."; 1468 case flex-grid { 1469 uses layer0-types:flex-grid-path-label; 1470 } 1471 } 1472 /* Augment label hop of route-object-exclude-always of reverse 1473 primary path */ 1474 augment "/te:te/te:tunnels/te:tunnel/" 1475 + "te:p2p-primary-paths/te:p2p-primary-path/" 1476 + "te:p2p-reverse-primary-path/" 1477 + "te:explicit-route-objects/" 1478 + "te:route-object-exclude-always/" 1479 + "te:type/te:label/" 1480 + "te:label-hop/te:te-label/te:technology" { 1481 description "flex-grid label."; 1482 case flex-grid { 1483 uses layer0-types:flex-grid-path-label; 1484 } 1485 } 1487 /* Augment label hop of route-object-include-exclude of reverse 1488 primary path */ 1489 augment "/te:te/te:tunnels/te:tunnel/" 1490 + "te:p2p-primary-paths/te:p2p-primary-path/" 1491 + "te:p2p-reverse-primary-path/" 1492 + "te:explicit-route-objects/" 1493 + "te:route-object-include-exclude/" 1494 + "te:type/te:label/" 1495 + "te:label-hop/te:te-label/te:technology" { 1496 description "flex-grid label."; 1497 case flex-grid { 1498 uses layer0-types:flex-grid-path-label; 1499 } 1500 } 1502 /* Augment label restrictions for the forwarding direction of 1503 path-in-segment of reverse primary path */ 1504 augment "/te:te/te:tunnels/te:tunnel/" 1505 + "te:p2p-primary-paths/te:p2p-primary-path/" 1506 + "te:p2p-reverse-primary-path/" 1507 + "te:path-in-segment/te:forward/te:label-restrictions/" 1508 + "te:label-restriction" { 1509 description "flex-grid label."; 1510 uses layer0-types:flex-grid-label-restriction; 1511 } 1512 /* Augment label restrictions start for the forwarding direction of 1513 path-in-segment of reverse primary path */ 1514 augment "/te:te/te:tunnels/te:tunnel/" 1515 + "te:p2p-primary-paths/te:p2p-primary-path/" 1516 + "te:p2p-reverse-primary-path/" 1517 + "te:path-in-segment/te:forward/te:label-restrictions/" 1518 + "te:label-restriction/te:label-start/" 1519 + "te:te-label/te:technology" { 1520 description "flex-grid label."; 1521 case flex-grid { 1522 uses layer0-types:flex-grid-link-label; 1523 } 1524 } 1525 /* Augment label restrictions end for the forwarding direction of 1526 path-in-segment of reverse primary path */ 1527 augment "/te:te/te:tunnels/te:tunnel/" 1528 + "te:p2p-primary-paths/te:p2p-primary-path/" 1529 + "te:p2p-reverse-primary-path/" 1530 + "te:path-in-segment/te:forward/te:label-restrictions/" 1531 + "te:label-restriction/te:label-end/" 1532 + "te:te-label/te:technology" { 1533 description "flex-grid label."; 1534 case flex-grid { 1535 uses layer0-types:flex-grid-link-label; 1536 } 1537 } 1538 /* Augment label restrictions for the reverse direction of 1539 path-in-segment of reverse primary path */ 1540 augment "/te:te/te:tunnels/te:tunnel/" 1541 + "te:p2p-primary-paths/te:p2p-primary-path/" 1542 + "te:p2p-reverse-primary-path/" 1543 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1544 + "te:label-restriction" { 1545 description "flex-grid label."; 1546 uses layer0-types:flex-grid-label-restriction; 1547 } 1548 /* Augment label restrictions start for the reverse direction of 1549 path-in-segment of reverse primary path */ 1550 augment "/te:te/te:tunnels/te:tunnel/" 1551 + "te:p2p-primary-paths/te:p2p-primary-path/" 1552 + "te:p2p-reverse-primary-path/" 1553 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1554 + "te:label-restriction/te:label-start/" 1555 + "te:te-label/te:technology" { 1556 description "flex-grid label."; 1557 case flex-grid { 1558 uses layer0-types:flex-grid-link-label; 1559 } 1560 } 1562 /* Augment label restrictions end for the reverse direction of 1563 path-in-segment of reverse primary path */ 1564 augment "/te:te/te:tunnels/te:tunnel/" 1565 + "te:p2p-primary-paths/te:p2p-primary-path/" 1566 + "te:p2p-reverse-primary-path/" 1567 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1568 + "te:label-restriction/te:label-end/" 1569 + "te:te-label/te:technology" { 1570 description "flex-grid label."; 1571 case flex-grid { 1572 uses layer0-types:flex-grid-link-label; 1573 } 1574 } 1575 /* Augment label restrictions for the forwarding direction of 1576 path-out-segment of reverse primary path */ 1577 augment "/te:te/te:tunnels/te:tunnel/" 1578 + "te:p2p-primary-paths/te:p2p-primary-path/" 1579 + "te:p2p-reverse-primary-path/" 1580 + "te:path-out-segment/te:forward/te:label-restrictions/" 1581 + "te:label-restriction" { 1582 description "flex-grid label."; 1583 uses layer0-types:flex-grid-label-restriction; 1584 } 1585 /* Augment label restrictions start for the forwarding direction of 1586 path-out-segment of reverse primary path */ 1587 augment "/te:te/te:tunnels/te:tunnel/" 1588 + "te:p2p-primary-paths/te:p2p-primary-path/" 1589 + "te:p2p-reverse-primary-path/" 1590 + "te:path-out-segment/te:forward/te:label-restrictions/" 1591 + "te:label-restriction/te:label-start/" 1592 + "te:te-label/te:technology" { 1593 description "flex-grid label."; 1594 case flex-grid { 1595 uses layer0-types:flex-grid-link-label; 1596 } 1597 } 1598 /* Augment label restrictions end for the forwarding direction of 1599 path-out-segment of reverse primary path */ 1600 augment "/te:te/te:tunnels/te:tunnel/" 1601 + "te:p2p-primary-paths/te:p2p-primary-path/" 1602 + "te:p2p-reverse-primary-path/" 1603 + "te:path-out-segment/te:forward/te:label-restrictions/" 1604 + "te:label-restriction/te:label-end/" 1605 + "te:te-label/te:technology" { 1606 description "flex-grid label."; 1607 case flex-grid { 1608 uses layer0-types:flex-grid-link-label; 1609 } 1610 } 1611 /* Augment label restrictions for the reverse direction of 1612 path-out-segment of reverse primary path */ 1613 augment "/te:te/te:tunnels/te:tunnel/" 1614 + "te:p2p-primary-paths/te:p2p-primary-path/" 1615 + "te:p2p-reverse-primary-path/" 1616 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1617 + "te:label-restriction" { 1618 description "flex-grid label."; 1619 uses layer0-types:flex-grid-label-restriction; 1620 } 1621 /* Augment label restrictions start for the reverse direction of 1622 path-out-segment of reverse primary path */ 1623 augment "/te:te/te:tunnels/te:tunnel/" 1624 + "te:p2p-primary-paths/te:p2p-primary-path/" 1625 + "te:p2p-reverse-primary-path/" 1626 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1627 + "te:label-restriction/te:label-start/" 1628 + "te:te-label/te:technology" { 1629 description "flex-grid label."; 1630 case flex-grid { 1631 uses layer0-types:flex-grid-link-label; 1632 } 1633 } 1634 /* Augment label restrictions end for the reverse direction of 1635 path-out-segment of reverse primary path */ 1636 augment "/te:te/te:tunnels/te:tunnel/" 1637 + "te:p2p-primary-paths/te:p2p-primary-path/" 1638 + "te:p2p-reverse-primary-path/" 1639 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1640 + "te:label-restriction/te:label-end/" 1641 + "te:te-label/te:technology" { 1642 description "flex-grid label."; 1643 case flex-grid { 1644 uses layer0-types:flex-grid-link-label; 1645 } 1646 } 1647 /* Augment label hop of path-route of reverse primary path */ 1648 augment "/te:te/te:tunnels/te:tunnel/" 1649 + "te:p2p-primary-paths/te:p2p-primary-path/" 1650 + "te:p2p-reverse-primary-path/" 1651 + "te:state/te:path-properties/" 1652 + "te:path-route-objects/te:path-computed-route-object/" 1653 + "te:state/te:type/te:label/" 1654 + "te:label-hop/te:te-label/te:technology" { 1655 description "flex-grid label."; 1656 case flex-grid { 1657 uses layer0-types:flex-grid-path-label; 1658 } 1659 } 1660 /* Augment label hop of record-route of reverse primary LSP */ 1661 augment "/te:te/te:tunnels/te:tunnel/" 1662 + "te:p2p-primary-paths/te:p2p-primary-path/" 1663 + "te:p2p-reverse-primary-path/" 1664 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1665 + "te:record-route-subobject/te:type/te:label/" 1666 + "te:label-hop/te:te-label/te:technology" { 1667 description "flex-grid label."; 1668 case flex-grid { 1669 uses layer0-types:flex-grid-path-label; 1670 } 1671 } 1672 /* Augment label hop of path-route of reverse primary LSP */ 1673 augment "/te:te/te:tunnels/te:tunnel/" 1674 + "te:p2p-primary-paths/te:p2p-primary-path/" 1675 + "te:p2p-reverse-primary-path/" 1676 + "te:state/te:lsps/te:lsp/te:path-properties/" 1677 + "te:path-route-objects/te:path-computed-route-object/" 1678 + "te:state/te:type/te:label/" 1679 + "te:label-hop/te:te-label/te:technology" { 1680 description "flex-grid label."; 1681 case flex-grid { 1682 uses layer0-types:flex-grid-path-label; 1683 } 1684 } 1685 /* Augment label hop of route-exclude of secondary path */ 1686 augment "/te:te/te:tunnels/te:tunnel/" 1687 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1688 + "te:optimizations/te:algorithm/te:metric/" 1689 + "te:optimization-metric/te:explicit-route-exclude-objects/" 1690 + "te:route-object-exclude-object/te:type/te:label/" 1691 + "te:label-hop/te:te-label/te:technology" { 1692 description "flex-grid label."; 1693 case flex-grid { 1694 uses layer0-types:flex-grid-path-label; 1695 } 1696 } 1697 /* Augment label hop of route-include of secondary path */ 1698 augment "/te:te/te:tunnels/te:tunnel/" 1699 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1700 + "te:optimizations/te:algorithm/te:metric/" 1701 + "te:optimization-metric/te:explicit-route-include-objects/" 1702 + "te:route-object-include-object/te:type/te:label/" 1703 + "te:label-hop/te:te-label/te:technology" { 1704 description "flex-grid label."; 1705 case flex-grid { 1706 uses layer0-types:flex-grid-path-label; 1707 } 1708 } 1709 /* Augment label hop of route-object-exclude-always of secondary path 1710 */ 1711 augment "/te:te/te:tunnels/te:tunnel/" 1712 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1713 + "te:explicit-route-objects/" 1714 + "te:route-object-exclude-always/te:type/te:label/" 1715 + "te:label-hop/te:te-label/te:technology" { 1716 description "flex-grid label."; 1717 case flex-grid { 1718 uses layer0-types:flex-grid-path-label; 1719 } 1720 } 1721 /* Augment label hop of route-object-include-exclude of secondary 1722 path */ 1723 augment "/te:te/te:tunnels/te:tunnel/" 1724 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1725 + "te:explicit-route-objects/" 1726 + "te:route-object-include-exclude/te:type/te:label/" 1727 + "te:label-hop/te:te-label/te:technology" { 1728 description "flex-grid label."; 1729 case flex-grid { 1730 uses layer0-types:flex-grid-path-label; 1731 } 1732 } 1733 /* Augment label restrictions for the forwarding direction of 1734 path-in-segment of secondary path */ 1735 augment "/te:te/te:tunnels/te:tunnel/" 1736 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1737 + "te:path-in-segment/te:forward/te:label-restrictions/" 1738 + "te:label-restriction" { 1739 description "flex-grid label."; 1740 uses layer0-types:flex-grid-label-restriction; 1741 } 1742 /* Augment label restrictions start for the forwarding direction of 1743 path-in-segment of secondary path */ 1744 augment "/te:te/te:tunnels/te:tunnel/" 1745 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1746 + "te:path-in-segment/te:forward/te:label-restrictions/" 1747 + "te:label-restriction/te:label-start/" 1748 + "te:te-label/te:technology" { 1749 description "flex-grid label."; 1750 case flex-grid { 1751 uses layer0-types:flex-grid-link-label; 1752 } 1753 } 1754 /* Augment label restrictions end for the forwarding direction of 1755 path-in-segment of secondary path */ 1756 augment "/te:te/te:tunnels/te:tunnel/" 1757 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1758 + "te:path-in-segment/te:forward/te:label-restrictions/" 1759 + "te:label-restriction/te:label-end/" 1760 + "te:te-label/te:technology" { 1761 description "flex-grid label."; 1762 case flex-grid { 1763 uses layer0-types:flex-grid-link-label; 1764 } 1765 } 1766 /* Augment label restrictions for the reverse direction of 1767 path-in-segment of secondary path */ 1768 augment "/te:te/te:tunnels/te:tunnel/" 1769 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1770 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1771 + "te:label-restriction" { 1772 description "flex-grid label."; 1773 uses layer0-types:flex-grid-label-restriction; 1774 } 1775 /* Augment label restrictions start for the reverse direction of 1776 path-in-segment of secondary path */ 1777 augment "/te:te/te:tunnels/te:tunnel/" 1778 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1779 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1780 + "te:label-restriction/te:label-start/" 1781 + "te:te-label/te:technology" { 1782 description "flex-grid label."; 1783 case flex-grid { 1784 uses layer0-types:flex-grid-link-label; 1785 } 1786 } 1787 /* Augment label restrictions end for the reverse direction of 1788 path-in-segment of secondary path */ 1789 augment "/te:te/te:tunnels/te:tunnel/" 1790 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1791 + "te:path-in-segment/te:reverse/te:label-restrictions/" 1792 + "te:label-restriction/te:label-end/" 1793 + "te:te-label/te:technology" { 1794 description "flex-grid label."; 1795 case flex-grid { 1796 uses layer0-types:flex-grid-link-label; 1797 } 1798 } 1799 /* Augment label restrictions for the forwarding direction of 1800 path-out-segment of secondary path */ 1801 augment "/te:te/te:tunnels/te:tunnel/" 1802 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1803 + "te:path-out-segment/te:forward/te:label-restrictions/" 1804 + "te:label-restriction" { 1805 description "flex-grid label."; 1806 uses layer0-types:flex-grid-label-restriction; 1807 } 1808 /* Augment label restrictions start for the forwarding direction of 1809 path-out-segment of secondary path */ 1810 augment "/te:te/te:tunnels/te:tunnel/" 1811 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1812 + "te:path-out-segment/te:forward/te:label-restrictions/" 1813 + "te:label-restriction/te:label-start/" 1814 + "te:te-label/te:technology" { 1815 description "flex-grid label."; 1816 case flex-grid { 1817 uses layer0-types:flex-grid-link-label; 1818 } 1819 } 1820 /* Augment label restrictions end for the forwarding direction of 1821 path-out-segment of secondary path */ 1822 augment "/te:te/te:tunnels/te:tunnel/" 1823 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1824 + "te:path-out-segment/te:forward/te:label-restrictions/" 1825 + "te:label-restriction/te:label-end/" 1826 + "te:te-label/te:technology" { 1827 description "flex-grid label."; 1828 case flex-grid { 1829 uses layer0-types:flex-grid-link-label; 1830 } 1831 } 1832 /* Augment label restrictions for the reverse direction of 1833 path-out-segment of secondary path */ 1834 augment "/te:te/te:tunnels/te:tunnel/" 1835 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1836 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1837 + "te:label-restriction" { 1838 description "flex-grid label."; 1839 uses layer0-types:flex-grid-label-restriction; 1840 } 1841 /* Augment label restrictions start for the reverse direction of 1842 path-out-segment of secondary path */ 1843 augment "/te:te/te:tunnels/te:tunnel/" 1844 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1845 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1846 + "te:label-restriction/te:label-start/" 1847 + "te:te-label/te:technology" { 1848 description "flex-grid label."; 1849 case flex-grid { 1850 uses layer0-types:flex-grid-link-label; 1851 } 1852 } 1853 /* Augment label restrictions end for the reverse direction of 1854 path-out-segment of secondary path */ 1855 augment "/te:te/te:tunnels/te:tunnel/" 1856 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1857 + "te:path-out-segment/te:reverse/te:label-restrictions/" 1858 + "te:label-restriction/te:label-end/" 1859 + "te:te-label/te:technology" { 1860 description "flex-grid label."; 1861 case flex-grid { 1862 uses layer0-types:flex-grid-link-label; 1863 } 1864 } 1865 /* Augment label hop of path-route of secondary path */ 1866 augment "/te:te/te:tunnels/te:tunnel/" 1867 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1868 + "te:state/te:path-properties/te:path-route-objects/" 1869 + "te:path-computed-route-object/te:state/te:type/te:label/" 1870 + "te:label-hop/te:te-label/te:technology" { 1871 description "flex-grid label."; 1872 case flex-grid { 1873 uses layer0-types:flex-grid-path-label; 1874 } 1875 } 1876 /* Augment label hop of record-route of secondary LSP */ 1877 augment "/te:te/te:tunnels/te:tunnel/" 1878 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1879 + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" 1880 + "te:record-route-subobject/te:type/te:label/" 1881 + "te:label-hop/te:te-label/te:technology" { 1882 description "flex-grid label."; 1883 case flex-grid { 1884 uses layer0-types:flex-grid-path-label; 1885 } 1886 } 1887 /* Augment label hop of path-route of secondary LSP */ 1888 augment "/te:te/te:tunnels/te:tunnel/" 1889 + "te:p2p-secondary-paths/te:p2p-secondary-path/" 1890 + "te:state/te:lsps/te:lsp/te:path-properties/" 1891 + "te:path-route-objects/" 1892 + "te:path-computed-route-object/te:state/te:type/te:label/" 1893 + "te:label-hop/te:te-label/te:technology" { 1894 description "flex-grid label."; 1895 case flex-grid { 1896 uses layer0-types:flex-grid-path-label; 1897 } 1898 } 1899 /* Augment label hop of record-route of LSP */ 1900 augment "/te:te/te:lsps-state/" 1901 + "te:lsp/te:lsp-record-route-subobjects/" 1902 + "te:record-route-subobject/te:type/te:label/" 1903 + "te:label-hop/te:te-label/te:technology" { 1904 description "flex-grid label."; 1905 case flex-grid { 1906 uses layer0-types:flex-grid-path-label; 1907 } 1908 } 1909 augment "/te:tunnels-rpc/te:input/te:tunnel-info/" 1910 + "tepc:path-request" { 1911 description 1912 "Augment with additional constraints flex-grid 1913 tunnel."; 1914 uses flex-grid-tunnel-attributes; 1915 uses flex-grid-path-constraints; 1916 } 1917 } 1919 1921 5.3. License 1923 Copyright (c) 2018 IETF Trust and the persons identified as authors 1924 of the code. All rights reserved. 1926 Redistribution and use in source and binary forms, with or without 1927 modification, are permitted provided that the following conditions 1928 are met: 1930 o Redistributions of source code must retain the above copyright 1931 notice, this list of conditions and the following disclaimer. 1933 o Redistributions in binary form must reproduce the above copyright 1934 notice, this list of conditions and the following disclaimer in 1935 the documentation and/or other materials provided with the 1936 distribution. 1938 o Neither the name of Internet Society, IETF or IETF Trust, nor the 1939 names of specific contributors, may be used to endorse or promote 1940 products derived from this software without specific prior 1941 written permission. 1943 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1944 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1945 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 1946 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 1947 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 1948 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 1949 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 1950 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1951 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 1952 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 1953 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1954 POSSIBILITY OF SUCH DAMAGE. 1956 6. Security Considerations 1958 The transport protocol used for sending the managed information MUST 1959 support authentication and SHOULD support encryption. 1961 The defined data-model by itself does not create any security 1962 implications. 1964 7. IANA Considerations 1966 The namespace used in the defined models is currently based on the 1967 METRO-HAUL project URI. Future versions of this document could 1968 register a URI in the IETF XML registry [RFC3688], as well as in the 1969 YANG Module Names registry [RFC6020]. 1971 8. References 1973 8.1. Normative References 1975 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1976 Requirement Levels", BCP 14, RFC 2119, March 1997. 1978 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1979 the Network Configuration Protocol (NETCONF)", RFC 6020, 1980 October 2010. 1982 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1983 January 2004. 1985 8.2. Informative References 1987 [RFC7698] Gonzalez de Dios, O., Casellas, R., Eds. "Framework and 1988 Requirements for GMPLS-Based Control of Flexi-Grid Dense 1989 Wavelength Division Multiplexing (DWDM) Networks", 1990 RFC7698, November 2015. 1991 [I-D.draft-ietf-ccamp-flexigrid-yang] Lopez de Vergara, J., 1992 Perdices, D., Lopez, V., Gonzalez de Dios, O., King, D., 1993 Lee, Y., Galimberti, G., "YANG data model for Flexi-Grid 1994 Optical Networks", Internet Draft, 1995 draft-ietf-ccamp-flexigrid-yang-02, 2018. 1996 [I-D.draft-ietf-teas-yang-te] 1997 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., 1998 Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data 1999 Model for Traffic Engineering Tunnels and Interfaces", 2000 draft-ietf-teas-yang-te-17, 2018. 2002 9. Contributors 2004 The model presented in this paper was contributed to by more people 2005 than can be listed on the author list. Additional contributors 2006 include: 2008 o Zafar Ali, Cisco Systems 2009 o Daniel Michaud Vallinoto, Universidad Autonoma de Madrid 2011 10. Acknowledgments 2013 The work presented in this Internet-Draft has been partially funded 2014 by the European Commission under the project H2020 METRO-HAUL 2015 (Metro High bandwidth, 5G Application-aware optical network, with 2016 edge storage, compUte and low Latency), Grant Agreement number: 2017 761727, and by the Spanish Ministry of Economy and Competitiveness 2018 under the project TRAFICA, MINECO/FEDER TEC2015-69417-C2-1-R. 2020 Authors' Addresses 2022 Jorge E. Lopez de Vergara 2023 Universidad Autonoma de Madrid 2024 Escuela Politecnica Superior 2025 C/Francisco Tomas y Valiente, 11 2026 E-28049 Madrid, Spain 2028 Email: jorge.lopez_vergara@uam.es 2030 Daniel Perdices Burrero 2031 Naudit High Performance Computing and Networking, S.L. 2032 C/Faraday, 7 2033 E-28049 Madrid, Spain 2035 Email: daniel.perdices@naudit.es 2036 Victor Lopez 2037 Telefonica I+D/GCTO 2038 Distrito Telefonica 2039 E-28050 Madrid, Spain 2041 Email: victor.lopezalvarez@telefonica.com 2043 Oscar Gonzalez de Dios 2044 Telefonica I+D/GCTO 2045 Distrito Telefonica 2046 E-28050 Madrid, Spain 2048 Email: oscar.gonzalezdedios@telefonica.com 2050 Daniel King 2051 Lancaster University 2053 Email: d.king@lancaster.ac.uk 2055 Young Lee 2056 Huawei Technologies 2058 Email: leeyoung@huawei.com 2060 Gabriele Galimberti 2061 Cisco Photonics Srl 2063 Email: ggalimbe@cisco.com