Skip to main content

YANG Data Models for requesting Path Computation in WDM Optical Networks
draft-ietf-ccamp-optical-path-computation-yang-03

Document Type Active Internet-Draft (ccamp WG)
Authors Italo Busi , Aihua Guo , Sergio Belotti
Last updated 2024-03-01
Replaces draft-gbb-ccamp-optical-path-computation-yang
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Yang Validation 6 errors, 2 warnings
Additional resources Mailing list discussion
Stream WG state WG Document
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Yes
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-ccamp-optical-path-computation-yang-03
CCAMP Working Group                                              I. Busi
Internet-Draft                                       Huawei Technologies
Intended status: Standards Track                                  A. Guo
Expires: 2 September 2024                         Futurewei Technologies
                                                              S. Belotti
                                                                   Nokia
                                                            1 March 2024

YANG Data Models for requesting Path Computation in WDM Optical Networks
           draft-ietf-ccamp-optical-path-computation-yang-03

Abstract

   This document provides a mechanism to request path computation in
   Wavelength-Division Multiplexing (WDM) optical networks composed of
   Wavelength Switched Optical Networks (WSON) and Flexi-Grid Dense
   Wavelength Division Multiplexing (DWDM) switched technologies.  This
   model augments the Remote Procedure Calls (RPCs) defined in RFC YYYY.

   [RFC EDITOR NOTE: Please replace RFC YYYY with the RFC number of
   draft-ietf-teas-yang-path-computation once it has been published.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 2 September 2024.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.

Busi, et al.            Expires 2 September 2024                [Page 1]
Internet-Draft        Yang for WDM Path Computation           March 2024

   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Terminology and Notations . . . . . . . . . . . . . . . .   3
     1.2.  Tree Diagram  . . . . . . . . . . . . . . . . . . . . . .   3
     1.3.  Prefix in Data Node Names . . . . . . . . . . . . . . . .   3
   2.  YANG Data Models for WDM Path Computation . . . . . . . . . .   4
     2.1.  YANG Models Overview  . . . . . . . . . . . . . . . . . .   4
     2.2.  Attributes Augmentation . . . . . . . . . . . . . . . . .   5
     2.3.  Bandwidth Augmentation  . . . . . . . . . . . . . . . . .   5
     2.4.  Label Augmentations . . . . . . . . . . . . . . . . . . .   5
   3.  WDM Path Computation Tree Diagrams  . . . . . . . . . . . . .   5
   4.  YANG Models for WDM Path Computation  . . . . . . . . . . . .  16
   5.  Manageability Considerations  . . . . . . . . . . . . . . . .  26
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  27
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  27
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  27
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  27
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  29
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .  30
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  30
   Contributors  . . . . . . . . . . . . . . . . . . . . . . . . . .  31
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  31

1.  Introduction

   [I-D.ietf-teas-yang-path-computation] describes key use cases, where
   a client needs to request underlying Software-Defined Network (SDN)
   controllers for path computation.  In some of these use cases, the
   underlying SDN controller can control a single-layer optical
   technologies, including Optical Transport Network (OTN), Wavelength
   Switched Optical Networks (WSON), Flexi-grid, and multi-layer Optical
   network.

   This document defines YANG data models, which augment the generic
   Path Computation RPC defined in
   [I-D.ietf-teas-yang-path-computation], with technology-specific
   augmentations required to request path computation to an underlying
   Optical SDN controller.  These models allow a client to delegate path
   computation tasks to the underlying Optical SDN controller without
   having to obtain optical-layer information from the controller and
   performing feasible path computation itself.  This is especially

Busi, et al.            Expires 2 September 2024                [Page 2]
Internet-Draft        Yang for WDM Path Computation           March 2024

   helpful in cases where computing optically-feasible paths require
   knowledge of physical-layer states, such as optical impairments,
   which are visible only to the Optical controller.

1.1.  Terminology and Notations

   Refer to [RFC7446] and [RFC7581] for the key terms used in this
   document.  The following terms are defined in [RFC7950] and are not
   redefined here:

   *  client

   *  server

   *  augment

   *  data model

   *  data node

   The following terms are defined in [RFC6241] and are not redefined
   here:

   *  configuration data

   *  state data

   The terminology for describing YANG data models is found in
   [RFC7950].

1.2.  Tree Diagram

   A simplified graphical representation of the data model is used in
   Section 3 of this document.  The meaning of the symbols in these
   diagrams is defined in [RFC8340].

1.3.  Prefix in Data Node Names

   In this document, names of data nodes and other data model objects
   are prefixed using the standard prefix associated with the
   corresponding YANG imported modules, as shown in Table 1.

Busi, et al.            Expires 2 September 2024                [Page 3]
Internet-Draft        Yang for WDM Path Computation           March 2024

           +==========+===========================+===========+
           | Prefix   | YANG module               | Reference |
           +==========+===========================+===========+
           | l0-types | ietf-layer0-types         | [RFCZZZZ] |
           +----------+---------------------------+-----------+
           | te       | ietf-te                   | [RFCKKKK] |
           +----------+---------------------------+-----------+
           | tepc     | ietf-te-path-computation  | [RFCYYYY] |
           +----------+---------------------------+-----------+
           | wdm-pc   | ietf-wdm-path-computation | RFCXXXX   |
           +----------+---------------------------+-----------+

             Table 1: Prefixes and corresponding YANG modules

   RFC Editor Note: Please replace XXXX with the RFC number assigned to
   this document.  Please replace ZZZZ with the RFC number assigned to
   [I-D.ietf-ccamp-rfc9093-bis].  Please replace KKKK with the RFC
   number assigned to [I-D.ietf-teas-yang-te].  Please replace YYYY with
   the RFC number assigned to [I-D.ietf-teas-yang-path-computation].
   Please remove this note.

2.  YANG Data Models for WDM Path Computation

2.1.  YANG Models Overview

   The YANG data models for requesting WDM path computation are defined
   as augmentations of the generic Path Computation RPC defined in
   [I-D.ietf-teas-yang-path-computation], as shown in Figure 1.

                       +--------------------------+    o: augment
          TE generic   | ietf-te-path-computation |
                       +--------------------------+
                                    o
                                    |
                                    |
                                    |
                       +---------------------------+
                       | ietf-wdm-path-computation |
                       +---------------------------+

     Figure 1: Relationship between WDM and TE path computation models

Busi, et al.            Expires 2 September 2024                [Page 4]
Internet-Draft        Yang for WDM Path Computation           March 2024

   The entities and Traffic Engineering (TE) attributes, such as
   requested path and tunnel attributes, defined in
   [I-D.ietf-teas-yang-path-computation], are still applicable when
   requesting WDM path computation and the models defined in this
   document only specifies the additional technology-specific
   attributes/information, using the attributes defined in
   [I-D.ietf-ccamp-rfc9093-bis].

2.2.  Attributes Augmentation

   The common characteristics for layer 0 (WSON and Flexi-grid) path
   computation are under definition in [I-D.ietf-ccamp-rfc9093-bis] and
   re-used in the ietf-wdm-path-computation YANG models.

2.3.  Bandwidth Augmentation

   As described in Section 4.2 of [RFC7699], there is some overlap
   between bandwidth and label in layer0.

   The WSON and flexi-grid label resource information described in
   Section 2.4, is sufficient to describe also the spectrum resources
   within WSON and flexi-grid networks.  Therefore, the model does not
   define any augmentation for the te-bandwidth containers defined in
   [I-D.ietf-teas-yang-path-computation].

2.4.  Label Augmentations

   The models augment all the occurrences of the label-restriction list
   with WSON and Flexi-grid technology-specific attributes using the l0-
   label-range-info and flexi-grid-label-range-info groupings defined in
   [I-D.ietf-ccamp-rfc9093-bis].

   Moreover, the models augment all the occurrences of the te-label
   container with the WSON, Flexi-grid and OTN technology-specific
   attributes using the wson-label-start-end, wson-label-hop, wson-
   label-step, flexi-grid-label-start-end, flexi-grid-label-hop and
   flexi-grid-label-step defined in [I-D.ietf-ccamp-rfc9093-bis].

3.  WDM Path Computation Tree Diagrams

   Figure 2 below shows the tree diagram of the YANG data model defined
   in module ietf-wdm-path-computation.yang.

Busi, et al.            Expires 2 September 2024                [Page 5]
Internet-Draft        Yang for WDM Path Computation           March 2024

   module: ietf-wdm-path-computation

     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:tunnel-attributes:
       +-- wdm-constraint
          +-- transceiver-constraint
          |  +-- operational-modes*            string
          |  +-- tx-tune-constraints
          |  |  +-- min-central-frequency?    frequency-thz
          |  |  +-- max-central-frequency?    frequency-thz
          |  |  +-- transceiver-tunability?   frequency-ghz
          |  +-- line-coding-bitrate*          identityref
          |  +-- tx-channel-power?             l0-types:power-dbm
          |  +-- preferred-rx-channel-power?   l0-types:power-dbm
          +-- gsnr-extra-margin?             snr
          +-- use-regen?                     boolean
          +-- wavelength-conversion?         boolean
          +-- wavelength-assignment?         identityref
          +-- guard-band-size?               l0-types:frequency-thz
          +-- matching-fwd-rev-wavelength?   boolean
          +-- allow-retuning?                boolean
          +-- delta-power?                   l0-types:power-ratio
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric
               /tepc:explicit-route-exclude-objects
               /tepc:route-object-exclude-object/tepc:type
               /tepc:numbered-node-hop:
       +-- path-in-transceiver
       |  +-- transponder-id?   uint32
       |  +-- transceivers* [lane-id]
       |     +-- lane-id                       uint8
       |     +-- transceiver-id?               uint32
       |     +-- operational-modes*            string
       |     +-- tx-tune-constraints
       |     |  +-- min-central-frequency?    frequency-thz
       |     |  +-- max-central-frequency?    frequency-thz
       |     |  +-- transceiver-tunability?   frequency-ghz
       |     +-- line-coding-bitrate*          identityref
       |     +-- tx-channel-power?             l0-types:power-dbm
       |     +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- path-out-transceiver
          +-- transponder-id?   uint32
          +-- transceivers* [lane-id]
             +-- lane-id                       uint8
             +-- transceiver-id?               uint32
             +-- operational-modes*            string
             +-- tx-tune-constraints

Busi, et al.            Expires 2 September 2024                [Page 6]
Internet-Draft        Yang for WDM Path Computation           March 2024

             |  +-- min-central-frequency?    frequency-thz
             |  +-- max-central-frequency?    frequency-thz
             |  +-- transceiver-tunability?   frequency-ghz
             +-- line-coding-bitrate*          identityref
             +-- tx-channel-power?             l0-types:power-dbm
             +-- preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric
               /tepc:explicit-route-exclude-objects
               /tepc:route-object-exclude-object/tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric
               /tepc:explicit-route-include-objects
               /tepc:route-object-include-object/tepc:type
               /tepc:numbered-node-hop:
       +-- path-in-transceiver
       |  +-- transponder-id?   uint32
       |  +-- transceivers* [lane-id]
       |     +-- lane-id                       uint8
       |     +-- transceiver-id?               uint32
       |     +-- operational-modes*            string
       |     +-- tx-tune-constraints
       |     |  +-- min-central-frequency?    frequency-thz
       |     |  +-- max-central-frequency?    frequency-thz
       |     |  +-- transceiver-tunability?   frequency-ghz
       |     +-- line-coding-bitrate*          identityref
       |     +-- tx-channel-power?             l0-types:power-dbm
       |     +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- path-out-transceiver
          +-- transponder-id?   uint32
          +-- transceivers* [lane-id]
             +-- lane-id                       uint8
             +-- transceiver-id?               uint32
             +-- operational-modes*            string
             +-- tx-tune-constraints
             |  +-- min-central-frequency?    frequency-thz
             |  +-- max-central-frequency?    frequency-thz
             |  +-- transceiver-tunability?   frequency-ghz
             +-- line-coding-bitrate*          identityref
             +-- tx-channel-power?             l0-types:power-dbm
             +-- preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric

Busi, et al.            Expires 2 September 2024                [Page 7]
Internet-Draft        Yang for WDM Path Computation           March 2024

               /tepc:explicit-route-include-objects
               /tepc:route-object-include-object/tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-exclude-always/tepc:type
               /tepc:numbered-node-hop:
       +-- path-in-transceiver
       |  +-- transponder-id?   uint32
       |  +-- transceivers* [lane-id]
       |     +-- lane-id                       uint8
       |     +-- transceiver-id?               uint32
       |     +-- operational-modes*            string
       |     +-- tx-tune-constraints
       |     |  +-- min-central-frequency?    frequency-thz
       |     |  +-- max-central-frequency?    frequency-thz
       |     |  +-- transceiver-tunability?   frequency-ghz
       |     +-- line-coding-bitrate*          identityref
       |     +-- tx-channel-power?             l0-types:power-dbm
       |     +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- path-out-transceiver
          +-- transponder-id?   uint32
          +-- transceivers* [lane-id]
             +-- lane-id                       uint8
             +-- transceiver-id?               uint32
             +-- operational-modes*            string
             +-- tx-tune-constraints
             |  +-- min-central-frequency?    frequency-thz
             |  +-- max-central-frequency?    frequency-thz
             |  +-- transceiver-tunability?   frequency-ghz
             +-- line-coding-bitrate*          identityref
             +-- tx-channel-power?             l0-types:power-dbm
             +-- preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-exclude-always/tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-include-exclude/tepc:type
               /tepc:numbered-node-hop:
       +-- path-in-transceiver
       |  +-- transponder-id?   uint32
       |  +-- transceivers* [lane-id]
       |     +-- lane-id                       uint8
       |     +-- transceiver-id?               uint32

Busi, et al.            Expires 2 September 2024                [Page 8]
Internet-Draft        Yang for WDM Path Computation           March 2024

       |     +-- operational-modes*            string
       |     +-- tx-tune-constraints
       |     |  +-- min-central-frequency?    frequency-thz
       |     |  +-- max-central-frequency?    frequency-thz
       |     |  +-- transceiver-tunability?   frequency-ghz
       |     +-- line-coding-bitrate*          identityref
       |     +-- tx-channel-power?             l0-types:power-dbm
       |     +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- path-out-transceiver
          +-- transponder-id?   uint32
          +-- transceivers* [lane-id]
             +-- lane-id                       uint8
             +-- transceiver-id?               uint32
             +-- operational-modes*            string
             +-- tx-tune-constraints
             |  +-- min-central-frequency?    frequency-thz
             |  +-- max-central-frequency?    frequency-thz
             |  +-- transceiver-tunability?   frequency-ghz
             +-- line-coding-bitrate*          identityref
             +-- tx-channel-power?             l0-types:power-dbm
             +-- preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-include-exclude/tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:synchronization/tepc:exclude-objects/tepc:excludes
               /tepc:type/tepc:numbered-node-hop:
       +-- path-in-transceiver
       |  +-- transponder-id?   uint32
       |  +-- transceivers* [lane-id]
       |     +-- lane-id                       uint8
       |     +-- transceiver-id?               uint32
       |     +-- operational-modes*            string
       |     +-- tx-tune-constraints
       |     |  +-- min-central-frequency?    frequency-thz
       |     |  +-- max-central-frequency?    frequency-thz
       |     |  +-- transceiver-tunability?   frequency-ghz
       |     +-- line-coding-bitrate*          identityref
       |     +-- tx-channel-power?             l0-types:power-dbm
       |     +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- path-out-transceiver
          +-- transponder-id?   uint32
          +-- transceivers* [lane-id]
             +-- lane-id                       uint8
             +-- transceiver-id?               uint32
             +-- operational-modes*            string

Busi, et al.            Expires 2 September 2024                [Page 9]
Internet-Draft        Yang for WDM Path Computation           March 2024

             +-- tx-tune-constraints
             |  +-- min-central-frequency?    frequency-thz
             |  +-- max-central-frequency?    frequency-thz
             |  +-- transceiver-tunability?   frequency-ghz
             +-- line-coding-bitrate*          identityref
             +-- tx-channel-power?             l0-types:power-dbm
             +-- preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:synchronization/tepc:exclude-objects/tepc:excludes
               /tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:output/te:path-compute-result
               /tepc:response/tepc:computed-paths-properties
               /tepc:computed-path-properties/tepc:path-properties:
       +--ro estimated-gsnr?          snr
       +--ro estimated-eol-gsnr?      snr
       +--ro estimated-lowest-gsnr?   snr
     augment /te:tunnels-path-compute/te:output/te:path-compute-result
               /tepc:response/tepc:computed-paths-properties
               /tepc:computed-path-properties/tepc:path-properties
               /tepc:path-route-objects/tepc:path-route-object/tepc:type
               /tepc:numbered-node-hop:
       +--ro path-in-transceiver
       |  +--ro transponder-id?   uint32
       |  +--ro transceivers* [lane-id]
       |     +--ro lane-id                       uint8
       |     +--ro transceiver-id?               uint32
       |     +--ro operational-modes*            string
       |     +--ro tx-tune-constraints
       |     |  +--ro min-central-frequency?    frequency-thz
       |     |  +--ro max-central-frequency?    frequency-thz
       |     |  +--ro transceiver-tunability?   frequency-ghz
       |     +--ro line-coding-bitrate*          identityref
       |     +--ro tx-channel-power?             l0-types:power-dbm
       |     +--ro preferred-rx-channel-power?   l0-types:power-dbm
       +--ro path-out-transceiver
          +--ro transponder-id?   uint32
          +--ro transceivers* [lane-id]
             +--ro lane-id                       uint8
             +--ro transceiver-id?               uint32
             +--ro operational-modes*            string
             +--ro tx-tune-constraints
             |  +--ro min-central-frequency?    frequency-thz
             |  +--ro max-central-frequency?    frequency-thz
             |  +--ro transceiver-tunability?   frequency-ghz
             +--ro line-coding-bitrate*          identityref
             +--ro tx-channel-power?             l0-types:power-dbm

Busi, et al.            Expires 2 September 2024               [Page 10]
Internet-Draft        Yang for WDM Path Computation           March 2024

             +--ro preferred-rx-channel-power?   l0-types:power-dbm
     augment /te:tunnels-path-compute/te:output/te:path-compute-result
               /tepc:response/tepc:computed-paths-properties
               /tepc:computed-path-properties/tepc:path-properties
               /tepc:path-route-objects/tepc:path-route-object
               /tepc:type:
       +--:(oms-element)
          +--ro oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment
               /tepc:label-restrictions/tepc:label-restriction:
       +-- grid-type?    identityref
       +-- priority?     uint8
       +-- flexi-grid
          +-- slot-width-granularity?   identityref
          +-- min-slot-width-factor?    uint16
          +-- max-slot-width-factor?    uint16
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-out-segment
               /tepc:label-restrictions/tepc:label-restriction:
       +-- grid-type?    identityref
       +-- priority?     uint8
       +-- flexi-grid
          +-- slot-width-granularity?   identityref
          +-- min-slot-width-factor?    uint16
          +-- max-slot-width-factor?    uint16
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric
               /tepc:explicit-route-exclude-objects
               /tepc:route-object-exclude-object/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?               l0-types:dwdm-n
             |     +--:(multi)
             |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +-- (single-or-super-channel)?
                   +--:(single)
                   |  +-- flexi-n?              l0-types:flexi-n
                   |  +-- flexi-m?              l0-types:flexi-m
                   x--:(super)

Busi, et al.            Expires 2 September 2024               [Page 11]
Internet-Draft        Yang for WDM Path Computation           March 2024

                   |  x-- subcarrier-flexi-n* [flexi-n]
                   |     +-- flexi-n    l0-types:flexi-n
                   |     +-- flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +-- frequency-slots
                         +-- frequency-slot* [flexi-n]
                            +-- flexi-n    l0-types:flexi-n
                            +-- flexi-m?   l0-types:flexi-m
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:optimizations/tepc:algorithm
               /tepc:metric/tepc:optimization-metric
               /tepc:explicit-route-include-objects
               /tepc:route-object-include-object/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?               l0-types:dwdm-n
             |     +--:(multi)
             |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +-- (single-or-super-channel)?
                   +--:(single)
                   |  +-- flexi-n?              l0-types:flexi-n
                   |  +-- flexi-m?              l0-types:flexi-m
                   x--:(super)
                   |  x-- subcarrier-flexi-n* [flexi-n]
                   |     +-- flexi-n    l0-types:flexi-n
                   |     +-- flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +-- frequency-slots
                         +-- frequency-slot* [flexi-n]
                            +-- flexi-n    l0-types:flexi-n
                            +-- flexi-m?   l0-types:flexi-m
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-exclude-always/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?               l0-types:dwdm-n

Busi, et al.            Expires 2 September 2024               [Page 12]
Internet-Draft        Yang for WDM Path Computation           March 2024

             |     +--:(multi)
             |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +-- (single-or-super-channel)?
                   +--:(single)
                   |  +-- flexi-n?              l0-types:flexi-n
                   |  +-- flexi-m?              l0-types:flexi-m
                   x--:(super)
                   |  x-- subcarrier-flexi-n* [flexi-n]
                   |     +-- flexi-n    l0-types:flexi-n
                   |     +-- flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +-- frequency-slots
                         +-- frequency-slot* [flexi-n]
                            +-- flexi-n    l0-types:flexi-n
                            +-- flexi-m?   l0-types:flexi-m
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects
               /tepc:route-object-include-exclude/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?               l0-types:dwdm-n
             |     +--:(multi)
             |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +-- (single-or-super-channel)?
                   +--:(single)
                   |  +-- flexi-n?              l0-types:flexi-n
                   |  +-- flexi-m?              l0-types:flexi-m
                   x--:(super)
                   |  x-- subcarrier-flexi-n* [flexi-n]
                   |     +-- flexi-n    l0-types:flexi-n
                   |     +-- flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +-- frequency-slots
                         +-- frequency-slot* [flexi-n]
                            +-- flexi-n    l0-types:flexi-n
                            +-- flexi-m?   l0-types:flexi-m
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment

Busi, et al.            Expires 2 September 2024               [Page 13]
Internet-Draft        Yang for WDM Path Computation           March 2024

               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-start/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- dwdm-n?    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?    l0-types:cwdm-n
             +--:(flexi-grid)
                +-- flexi-n?   l0-types:flexi-n
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-end/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- dwdm-n?    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?    l0-types:cwdm-n
             +--:(flexi-grid)
                +-- flexi-n?   l0-types:flexi-n
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-step/tepc:technology:
       +--:(wdm)
          +-- (l0-grid-type)?
             +--:(fixed-dwdm)
             |  +-- wson-dwdm-channel-spacing?    identityref
             +--:(cwdm)
             |  +-- wson-cwdm-channel-spacing?    identityref
             +--:(flexi-grid)
                x-- flexi-grid-channel-spacing?   identityref
                +-- flexi-ncfg?                   identityref
                +-- flexi-n-step?                 uint8
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-out-segment
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-start/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- dwdm-n?    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?    l0-types:cwdm-n
             +--:(flexi-grid)
                +-- flexi-n?   l0-types:flexi-n

Busi, et al.            Expires 2 September 2024               [Page 14]
Internet-Draft        Yang for WDM Path Computation           March 2024

     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-out-segment
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-end/tepc:te-label/tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- dwdm-n?    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?    l0-types:cwdm-n
             +--:(flexi-grid)
                +-- flexi-n?   l0-types:flexi-n
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-out-segment
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-step/tepc:technology:
       +--:(wdm)
          +-- (l0-grid-type)?
             +--:(fixed-dwdm)
             |  +-- wson-dwdm-channel-spacing?    identityref
             +--:(cwdm)
             |  +-- wson-cwdm-channel-spacing?    identityref
             +--:(flexi-grid)
                x-- flexi-grid-channel-spacing?   identityref
                +-- flexi-ncfg?                   identityref
                +-- flexi-n-step?                 uint8
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:synchronization/tepc:exclude-objects/tepc:excludes
               /tepc:type/tepc:label/tepc:label-hop/tepc:te-label
               /tepc:technology:
       +--:(wdm)
          +-- (grid-type)?
             +--:(fixed-dwdm)
             |  +-- (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?               l0-types:dwdm-n
             |     +--:(multi)
             |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +-- cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +-- (single-or-super-channel)?
                   +--:(single)
                   |  +-- flexi-n?              l0-types:flexi-n
                   |  +-- flexi-m?              l0-types:flexi-m
                   x--:(super)
                   |  x-- subcarrier-flexi-n* [flexi-n]
                   |     +-- flexi-n    l0-types:flexi-n

Busi, et al.            Expires 2 September 2024               [Page 15]
Internet-Draft        Yang for WDM Path Computation           March 2024

                   |     +-- flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +-- frequency-slots
                         +-- frequency-slot* [flexi-n]
                            +-- flexi-n    l0-types:flexi-n
                            +-- flexi-m?   l0-types:flexi-m
     augment /te:tunnels-path-compute/te:output/te:path-compute-result
               /tepc:response/tepc:computed-paths-properties
               /tepc:computed-path-properties/tepc:path-properties
               /tepc:path-route-objects/tepc:path-route-object/tepc:type
               /tepc:label/tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wdm)
          +--ro (grid-type)?
             +--:(fixed-dwdm)
             |  +--ro (fixed-single-or-super-channel)?
             |     +--:(single)
             |     |  +--ro dwdm-n?               l0-types:dwdm-n
             |     +--:(multi)
             |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
             +--:(cwdm)
             |  +--ro cwdm-n?                     l0-types:cwdm-n
             +--:(flexi-grid)
                +--ro (single-or-super-channel)?
                   +--:(single)
                   |  +--ro flexi-n?              l0-types:flexi-n
                   |  +--ro flexi-m?              l0-types:flexi-m
                   x--:(super)
                   |  x--ro subcarrier-flexi-n* [flexi-n]
                   |     +--ro flexi-n    l0-types:flexi-n
                   |     +--ro flexi-m?   l0-types:flexi-m
                   +--:(multi)
                      +--ro frequency-slots
                         +--ro frequency-slot* [flexi-n]
                            +--ro flexi-n    l0-types:flexi-n
                            +--ro flexi-m?   l0-types:flexi-m

                Figure 2: WDM path computation tree diagram

4.  YANG Models for WDM Path Computation

   <CODE BEGINS> file "ietf-wdm-path-computation@2024-02-29.yang"
   module ietf-wdm-path-computation {
     yang-version 1.1;
     namespace
       "urn:ietf:params:xml:ns:yang:ietf-wdm-path-computation";
     prefix "wdm-pc";

     import ietf-te-path-computation {

Busi, et al.            Expires 2 September 2024               [Page 16]
Internet-Draft        Yang for WDM Path Computation           March 2024

       prefix "tepc";
       reference
         "I-D.ietf-teas-yang-path-computation-22: Yang model
         for requesting Path Computation.";
     }

     import ietf-te {
       prefix "te";
       reference
         "I-D.ietf-teas-yang-te-36: A YANG Data Model for Traffic
         Engineering Tunnels and Interfaces.";
     }

     import ietf-layer0-types {
       prefix "l0-types";
       reference
         "I-D.ietf-ccamp-rfc9093-bis: A YANG Data Model for Layer 0
         Types.";
     }

     import ietf-wdm-tunnel {
       prefix "wdm-tnl";
       reference
         "I-D.ietf-wdm-tunnel: A YANG Data Model for WDM Tunnels.";
     }

     organization
       "IETF CCAMP Working Group";
     contact
       "WG Web:   <http://tools.ietf.org/wg/ccamp/>
        WG List:  <mailto:ccamp@ietf.org>

        Editor:   Aihua Guo
                  <mailto:aihuaguo.ietf@gmail.com>

        Editor:   Italo Busi
                  <mailto:italo.busi@huawei.com>

        Editor:   Sergio Belotti
                  <mailto:sergio.belotti@nokia.com>";

     description
       "This module defines a model for requesting
       WDM Path Computation.

       The model fully conforms to the Network Management
       Datastore Architecture (NMDA).

Busi, et al.            Expires 2 September 2024               [Page 17]
Internet-Draft        Yang for WDM Path Computation           March 2024

       Copyright (c) 2022 IETF Trust and the persons
       identified as authors of the code.  All rights reserved.

       Redistribution and use in source and binary forms, with or
       without modification, is permitted pursuant to, and subject
       to the license terms contained in, the Revised BSD License
       set forth in Section 4.c of the IETF Trust's Legal Provisions
       Relating to IETF Documents
       (https://trustee.ietf.org/license-info).

       This version of this YANG module is part of RFC XXXX; see
       the RFC itself for full legal notices.";

     revision "2024-02-29" {
       description
         "Initial version.";
       reference
         "RFC XXXX: YANG Data Models for requesting Path Computation
         in Optical Networks.";
       // RFC Ed.: replace XXXX with actual RFC number, update date
       // information and remove this note
     }

    /*
     * Data nodes
     */

     /*
      * Augment tunnel attributes
      */
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:tunnel-attributes" {
       description
          "Augment with WDM tunnel-specific constraints.";

       uses wdm-tnl:wdm-constraint;
     }

     /*
      * Augment path computation request
      */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-exclude-objects/"
           + "tepc:route-object-exclude-object/tepc:type/"
           + "tepc:numbered-node-hop" {

Busi, et al.            Expires 2 September 2024               [Page 18]
Internet-Draft        Yang for WDM Path Computation           March 2024

       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;
     }

     //???
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-exclude-objects/"
           + "tepc:route-object-exclude-object/tepc:type" {
       description
         "Augment the route hop for the optimization of the explicit
         route objects excluded by the path computation of the requested
         path.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-include-objects/"
           + "tepc:route-object-include-object/tepc:type/"
           + "tepc:numbered-node-hop" {
       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;
     }

     //???
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-include-objects/"
           + "tepc:route-object-include-object/tepc:type" {
       description
         "Augment the route hop for the optimization of the explicit
         route objects included by the path computation of the requested

Busi, et al.            Expires 2 September 2024               [Page 19]
Internet-Draft        Yang for WDM Path Computation           March 2024

         path.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-exclude-always/tepc:type/"
           + "tepc:numbered-node-hop" {
       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;
     }

     //???
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-exclude-always/tepc:type" {
       description
         "Augment the route hop for the explicit route objects always
         excluded by the path computation of the requested path.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-include-exclude/tepc:type/"
           + "tepc:numbered-node-hop" {
       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;

Busi, et al.            Expires 2 September 2024               [Page 20]
Internet-Draft        Yang for WDM Path Computation           March 2024

     }

     //???
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-include-exclude/tepc:type" {
       description
         "Augment the route hop for the explicit route objects included
         or excluded by the path computation of the requested path.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/"
           + "tepc:type/tepc:numbered-node-hop" {
       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;
     }

     //???
     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/"
           + "tepc:type" {
       description
         "Augment the route hop for the explicit route objects to always
         exclude from synchronized path computation.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     /*

Busi, et al.            Expires 2 September 2024               [Page 21]
Internet-Draft        Yang for WDM Path Computation           March 2024

      * Augment path computation response
      */

     augment "/te:tunnels-path-compute/te:output/"
           + "te:path-compute-result/tepc:response/"
           + "tepc:computed-paths-properties/"
           + "tepc:computed-path-properties/tepc:path-properties" {
       description
          "Augment with additional properties for WDM paths.";

       uses l0-types:l0-path-properties;
     }

     augment "/te:tunnels-path-compute/te:output/"
           + "te:path-compute-result/tepc:response/"
           + "tepc:computed-paths-properties/"
           + "tepc:computed-path-properties/tepc:path-properties/"
           + "tepc:path-route-objects/tepc:path-route-object/"
           + "tepc:type/tepc:numbered-node-hop" {
       description
         "Augment with transceiver configurations.";

       uses wdm-tnl:path-transceiver-config;
     }

     //???
     augment "/te:tunnels-path-compute/te:output/"
           + "te:path-compute-result/tepc:response/"
           + "tepc:computed-paths-properties/"
           + "tepc:computed-path-properties/tepc:path-properties/"
           + "tepc:path-route-objects/tepc:path-route-object/"
           + "tepc:type" {
       description
         "Augment the route hop for the route object of the computed
         path.";
       case oms-element {
         leaf oms-element-uid {
           type string;
           description
             "The unique id of the OMS element.";
         }
         description
           "The OMS element route hop type";
       }
     }

     /*

Busi, et al.            Expires 2 September 2024               [Page 22]
Internet-Draft        Yang for WDM Path Computation           March 2024

      * Augment TE label range information
      */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-in-segment/"
           + "tepc:label-restrictions/tepc:label-restriction" {
       description
         "Augment TE label range information for the ingress segment
         of the requested path.";
       uses l0-types:wdm-label-range-info;
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-out-segment/"
           + "tepc:label-restrictions/tepc:label-restriction" {
       description
         "Augment TE label range information for the egress segment
         of the requested path.";
       uses l0-types:wdm-label-range-info;
     }

     /*
      * Augment TE label.
      */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-exclude-objects/"
           + "tepc:route-object-exclude-object/tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the optimization of the explicit
         route objects excluded by the path computation of the requested
         path.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:optimizations/tepc:algorithm/"
           + "tepc:metric/tepc:optimization-metric/"
           + "tepc:explicit-route-include-objects/"
           + "tepc:route-object-include-object/tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the optimization of the explicit

Busi, et al.            Expires 2 September 2024               [Page 23]
Internet-Draft        Yang for WDM Path Computation           March 2024

         route objects included by the path computation of the requested
         path.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-exclude-always/tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the explicit route objects always
         excluded by the path computation of the requested path.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects/"
           + "tepc:route-object-include-exclude/tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the explicit route objects included
         or excluded by the path computation of the requested path.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-in-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-start/tepc:te-label/tepc:technology" {
       description
         "Augment TE label range start for the ingress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-in-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-end/tepc:te-label/tepc:technology" {
       description

Busi, et al.            Expires 2 September 2024               [Page 24]
Internet-Draft        Yang for WDM Path Computation           March 2024

         "Augment TE label range end for the ingress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-in-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-step/tepc:technology" {
       description
         "Augment TE label range step for the ingress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-step;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-out-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-start/tepc:te-label/tepc:technology" {
       description
         "Augment TE label range start for the egress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-out-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-end/tepc:te-label/tepc:technology" {
       description
         "Augment TE label range end for the egress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:path-out-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-step/tepc:technology" {
       description

Busi, et al.            Expires 2 September 2024               [Page 25]
Internet-Draft        Yang for WDM Path Computation           March 2024

         "Augment TE label range end for the egress segment
         of the requested path.";
       case wdm {
         uses l0-types:wdm-label-step;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/"
           + "tepc:type/tepc:label/tepc:label-hop/"
           + "tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the explicit route objects to always
         exclude from synchronized path computation.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:output/"
           + "te:path-compute-result/tepc:response/"
           + "tepc:computed-paths-properties/"
           + "tepc:computed-path-properties/tepc:path-properties/"
           + "tepc:path-route-objects/tepc:path-route-object/"
           + "tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description
         "Augment TE label hop for the route object of the computed
         path.";
       case wdm {
         uses l0-types:wdm-label-hop;
       }
     }
   }
   <CODE ENDS>

                 Figure 3: WDM path computation YANG module

5.  Manageability Considerations

   This document provides a method for requesting path computations for
   WSON and Flexi-Grid tunnels.  Consideration of mechanisms to gather
   and collate information required for the path computations will be
   necessary.  Furthermore, storing path computation requests and
   responses and triggering actions will also need to be carefully
   managed and secured.

   Future versions of this document will contain additional information.

Busi, et al.            Expires 2 September 2024               [Page 26]
Internet-Draft        Yang for WDM Path Computation           March 2024

6.  Security Considerations

   The YANG module defined in this document will be accessed via the
   NETCONF protocol [RFC6241] or RESTCONF protocol [RFC8040].  The
   lowest NETCONF layer is the secure transport layer, and the
   mandatory-to-implement secure transport is Secure Shell (SSH)
   [RFC6242].  The lowest RESTCONF layer is HTTPS and the mandatory-to-
   implement secure transport is TLS [RFC8446].

   The Network Configuration Access Control Model (NACM) [RFC8341]
   provides the means to restrict access to particular NETCONF or
   RESTCONF users to a pre-configured subset of all available NETCONF or
   RESTCONF protocol operations and content.

   Some of the RPC operations defined in this YANG module may be
   considered sensitive or vulnerable in some network environments.  It
   is thus essential to control access to these operations.

   Operations defined in this document, and their sensitivities and
   possible vulnerabilities, will be discussed further in future
   versions of this document.

7.  IANA Considerations

   This document registers the following URIs in the "ns" subregistry
   within the "IETF XML registry" [RFC3688].

     URI: urn:ietf:params:xml:ns:yang:ietf-wdm-path-computation
     Registrant Contact:  The IESG.
     XML: N/A, the requested URI is an XML namespace.

   This document registers the following YANG module in the "YANG Module
   Names" registry [RFC7950].

     name:      ietf-wdm-path-computation
     namespace: urn:ietf:params:xml:ns:yang:ietf-wson-path-computation
     prefix:    wdm-pc
     reference: this document

8.  References

8.1.  Normative References

Busi, et al.            Expires 2 September 2024               [Page 27]
Internet-Draft        Yang for WDM Path Computation           March 2024

   [I-D.ietf-ccamp-rfc9093-bis]
              Belotti, S., Busi, I., Beller, D., Zheng, H., Le Rouzic,
              E., Guo, A., and D. King, "A YANG Data Model for Layer 0
              Types", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-rfc9093-bis-08, 1 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              rfc9093-bis-08>.

   [I-D.ietf-teas-yang-path-computation]
              Busi, I., Belotti, S., de Dios, O. G., Sharma, A., and Y.
              Shi, "A YANG Data Model for requesting path computation",
              Work in Progress, Internet-Draft, draft-ietf-teas-yang-
              path-computation-22, 14 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-teas-
              yang-path-computation-22>.

   [I-D.ietf-teas-yang-te]
              Saad, T., Gandhi, R., Liu, X., Beeram, V. P., and I.
              Bryskin, "A YANG Data Model for Traffic Engineering
              Tunnels, Label Switched Paths and Interfaces", Work in
              Progress, Internet-Draft, draft-ietf-teas-yang-te-36, 2
              February 2024, <https://datatracker.ietf.org/doc/html/
              draft-ietf-teas-yang-te-36>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

   [RFC7699]  Farrel, A., King, D., Li, Y., and F. Zhang, "Generalized
              Labels for the Flexi-Grid in Lambda Switch Capable (LSC)
              Label Switching Routers", RFC 7699, DOI 10.17487/RFC7699,
              November 2015, <https://www.rfc-editor.org/info/rfc7699>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

Busi, et al.            Expires 2 September 2024               [Page 28]
Internet-Draft        Yang for WDM Path Computation           March 2024

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

8.2.  Informative References

   [I-D.draft-gbb-ccamp-otn-path-computation-yang]
              Busi, I., Guo, A., and S. Belotti, "A YANG Data Model for
              requesting Path Computation in an Optical Transport
              Network (OTN)", Work in Progress, Internet-Draft, draft-
              gbb-ccamp-otn-path-computation-yang-02, 12 September 2022,
              <https://datatracker.ietf.org/doc/html/draft-gbb-ccamp-
              otn-path-computation-yang-02>.

   [I-D.ietf-ccamp-flexigrid-tunnel-yang]
              de Madrid, U. A., Burrero, D. P., King, D., Lopez, V.,
              Busi, I., Belotti, S., and G. Galimberti, "A YANG Data
              Model for Flexi-Grid Tunnels", Work in Progress, Internet-
              Draft, draft-ietf-ccamp-flexigrid-tunnel-yang-03, 10 July
              2023, <https://datatracker.ietf.org/doc/html/draft-ietf-
              ccamp-flexigrid-tunnel-yang-03>.

   [I-D.ietf-ccamp-wson-tunnel-model]
              Lee, Y., Zheng, H., Guo, A., Lopez, V., King, D., Yoon, B.
              Y., and R. Vilalta, "A Yang Data Model for WSON Tunnel",
              Work in Progress, Internet-Draft, draft-ietf-ccamp-wson-
              tunnel-model-09, 9 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              wson-tunnel-model-09>.

   [I-D.ietf-teas-actn-poi-applicability]
              Peruzzini, F., Bouquier, J., Busi, I., King, D., and D.
              Ceccarelli, "Applicability of Abstraction and Control of
              Traffic Engineered Networks (ACTN) to Packet Optical
              Integration (POI)", Work in Progress, Internet-Draft,

Busi, et al.            Expires 2 September 2024               [Page 29]
Internet-Draft        Yang for WDM Path Computation           March 2024

              draft-ietf-teas-actn-poi-applicability-11, 22 February
              2024, <https://datatracker.ietf.org/doc/html/draft-ietf-
              teas-actn-poi-applicability-11>.

   [RFC7446]  Lee, Y., Ed., Bernstein, G., Ed., Li, D., and W. Imajuku,
              "Routing and Wavelength Assignment Information Model for
              Wavelength Switched Optical Networks", RFC 7446,
              DOI 10.17487/RFC7446, February 2015,
              <https://www.rfc-editor.org/info/rfc7446>.

   [RFC7581]  Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and
              J. Han, "Routing and Wavelength Assignment Information
              Encoding for Wavelength Switched Optical Networks",
              RFC 7581, DOI 10.17487/RFC7581, June 2015,
              <https://www.rfc-editor.org/info/rfc7581>.

Appendix A.  Change Log

   The initial YANG data model requesting path computation in optical
   networks was draft-gbb-ccamp-optical-path-computation-yang-00.  This
   document included path computation request capabilities for WSON,
   Flexi-Grid and OTN technologies.  However, it was proposed at IETF
   113 (March 25, 2022) to split the initial document into separate
   documents for WDM (WSON and Flexi-Grid) and OTN technologies, as each
   technology may be developed and implemented separately.

   The WDM technology capabilities were kept in this document, and the
   OTN capabilities were moved into
   [I-D.draft-gbb-ccamp-otn-path-computation-yang].

   Editors note, please remove this appendix before publication.

Acknowledgments

   The authors of this document would like to thank the authors of
   [I-D.ietf-teas-actn-poi-applicability] for having identified the gap
   and requirements to trigger this work.

   The authors of this document would also like to thank Young Lee,
   Haomian Zheng, Victor Lopex, Ricard Vilalta, Bin Yeong Yoon, Jorge E.
   Lopez de Vergara Mendez, Daniel Perdices Burrero, Oscar Gonzalez de
   Dios, Gabriele Galimberti, Zafar Ali, Daniel Michaud Vallinoto and
   Dhruv Dhody who have contributed to the development of path
   computation augmentations for WSON and Flexi-grid topology in earlier
   versions of [I-D.ietf-ccamp-wson-tunnel-model] and of
   [I-D.ietf-ccamp-flexigrid-tunnel-yang].

   This document was prepared using kramdown.

Busi, et al.            Expires 2 September 2024               [Page 30]
Internet-Draft        Yang for WDM Path Computation           March 2024

Contributors

   Daniel King
   Old Dog Consulting
   Email: daniel@olddog.co.uk

Authors' Addresses

   Italo Busi
   Huawei Technologies
   Email: italo.busi@huawei.com

   Aihua Guo
   Futurewei Technologies
   Email: aihuaguo.ietf@gmail.com

   Sergio Belotti
   Nokia
   Email: sergio.belotti@nokia.com

Busi, et al.            Expires 2 September 2024               [Page 31]