CCAMP Working Group                                              I. Busi
Internet-Draft                                       Huawei Technologies
Intended status: Standards Track                                  A. Guo
Expires: 8 September 2022                         Futurewei Technologies
                                                              S. Belotti
                                                                   Nokia
                                                            7 March 2022


  YANG Data Models for requesting Path Computation in Optical Networks
            draft-gbb-ccamp-optical-path-computation-yang-01

Abstract

   This document describes YANG data models for Remote Procedure Calls
   (RPCs) to request Path Computation in Optical Networks (OTN, WSON and
   Flexi-grid).

   The YANG data models defined in this document conforms to the Network
   Management Datastore Architecture (NMDA).

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 8 September 2022.

Copyright Notice

   Copyright (c) 2022 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.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components



Busi, et al.            Expires 8 September 2022                [Page 1]


Internet-Draft      Yang for Optical Path Computation         March 2022


   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 Optical Path Computation . . . . . . . .   4
     2.1.  YANG Models Overview  . . . . . . . . . . . . . . . . . .   4
     2.2.  Attributes Augmentation . . . . . . . . . . . . . . . . .   5
     2.3.  Bandwidth Augmentation  . . . . . . . . . . . . . . . . .   6
     2.4.  Label Augmentations . . . . . . . . . . . . . . . . . . .   6
   3.  Optical Path Computation Tree Diagrams  . . . . . . . . . . .   6
     3.1.  WSON Path Computation Tree Diagrams . . . . . . . . . . .   6
     3.2.  Flexi-grid Path Computation Tree Diagrams . . . . . . . .  11
     3.3.  OTN Path Computation Tree Diagrams  . . . . . . . . . . .  15
   4.  YANG Models for Optical Path Computation  . . . . . . . . . .  19
     4.1.  YANG Model for WSON Path Computation  . . . . . . . . . .  19
     4.2.  YANG Model for Flexi-grid Path Computation  . . . . . . .  27
     4.3.  YANG Model for OTN Path Computation . . . . . . . . . . .  35
   5.  Manageability Considerations  . . . . . . . . . . . . . . . .  41
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  42
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  42
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  42
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  42
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  44
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  45
   Contributors  . . . . . . . . . . . . . . . . . . . . . . . . . .  45
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  45

1.  Introduction

   [I-D.ietf-teas-yang-path-computation] describes key use cases, where
   a client needs to request underlying 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



Busi, et al.            Expires 8 September 2022                [Page 2]


Internet-Draft      Yang for Optical Path Computation         March 2022


   having to obtain optical-layer information from the controller and
   performing feasible path computation itself.  This is especially
   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.

   The YANG data model defined in this document conforms to the Network
   Management Datastore Architecture [RFC8342].

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 8 September 2022                [Page 3]


Internet-Draft      Yang for Optical Path Computation         March 2022


      +==============+==================================+===========+
      | Prefix       | YANG module                      | Reference |
      +==============+==================================+===========+
      | l0-types     | ietf-layer0-types                | [RFC9093] |
      +--------------+----------------------------------+-----------+
      | l0-types-ext | ietf-layer0-types-ext            | [RFCYYYY] |
      +--------------+----------------------------------+-----------+
      | l0-types     | ietf-layer0-types                | [RFC8776] |
      +--------------+----------------------------------+-----------+
      | l1-types     | ietf-layer1-types                | [RFCZZZZ] |
      +--------------+----------------------------------+-----------+
      | te           | ietf-te                          | [RFCKKKK] |
      +--------------+----------------------------------+-----------+
      | tep          | ietf-te-path-computation         | [RFCJJJJ] |
      +--------------+----------------------------------+-----------+
      | flexg-pc     | ietf-flexi-grid-path-computation | RFCXXXX   |
      +--------------+----------------------------------+-----------+
      | wson-pc      | ietf-wson-path-computation       | RFCXXXX   |
      +--------------+----------------------------------+-----------+
      | otn-pc       | ietf-otn-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 YYYY with the RFC number assigned to
   [I-D.ietf-ccamp-layer0-types-ext].  Please replace ZZZZ with the RFC
   number assigned to [I-D.ietf-ccamp-layer1-types].  Please replace
   KKKK with the RFC number assigned to [I-D.ietf-teas-yang-te].  Please
   replace JJJJ with the RFC number assigned to
   [I-D.ietf-teas-yang-path-computation].  Please remove this note.

2.  YANG Data Models for Optical Path Computation

2.1.  YANG Models Overview

   The YANG data models for requesting WSON, Flexi-grid and OTN 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.











Busi, et al.            Expires 8 September 2022                [Page 4]


Internet-Draft      Yang for Optical Path Computation         March 2022


                       +--------------------------+    o: augment
          TE generic   | ietf-te-path-computation |
                       +--------------------------+
                             o      o      o
                             |      |      |
                             |      |      |
                 +-----------+      |      +-----------+
                 |                  |                  |
                 |                  |                  |
                 |                  |                  |
                 |    +---------------------------+    |
                 |    | ietf-otn-path-computation |    |
                 |    +---------------------------+    |
                 |                 OTN                 |
                 |                                     |
                 |                                     |
   +----------------------------+                      |
   | ietf-wson-path-computation |                      |
   +----------------------------+                      |
               WSON                                    |
                                   +----------------------------------+
                                   | ietf-flexi-grid-path-computation |
                                   +----------------------------------+
                                               Flexi-grid

      Figure 1: Relationship between WSON, Flexi-grid, OTN and TE path
                             computation models

   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 WSON, Flexi-grid and OTN path computation and the models
   defined in this document only specifies the additional technology-
   specific attributes/information, using the attributes defined in
   [RFC9093], [I-D.ietf-ccamp-layer0-types-ext] and
   [I-D.ietf-ccamp-layer1-types].

   The YANG modules ietf-wson-path-computation, ietf-flexi-grid-path-
   computation and ietf-otn-path-computation defined in this document
   conforms to the Network Management Datastore Architecture (NMDA)
   defined in [RFC8342].

2.2.  Attributes Augmentation

   The common characteristics for layer 0 (WSON and Flexi-grid) tunnels
   are under definition in [I-D.ietf-ccamp-layer0-types-ext] and re-used
   in the ietf-wson-path-computation and ietf-flexi-grid-path-
   computation YANG models



Busi, et al.            Expires 8 September 2022                [Page 5]


Internet-Draft      Yang for Optical Path Computation         March 2022


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].

   The OTN path computation model augments all the occurrences of the
   te-bandwidth container with the OTN technology-specific attributes
   using the otn-link-bandwidth and otn-path-bandwidth groupings defined
   in [I-D.ietf-ccamp-layer1-types].

2.4.  Label Augmentations

   The models augment all the occurrences of the label-restriction list
   with WSON, Flexi-grid and OTN technology-specific attributes using
   the l0-label-range-info and flexi-grid-label-range-info groupings
   defined in [RFC9093] and the otn-label-range-info grouping defined in
   [I-D.ietf-ccamp-layer1-types].

   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 [RFC9093] and the otn-label-start-
   end, otn-label-hop and otn-label-step groupings defined in
   [I-D.ietf-ccamp-layer1-types].

3.  Optical Path Computation Tree Diagrams

3.1.  WSON Path Computation Tree Diagrams

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

   module: ietf-wson-path-computation

     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request:
       +-- fec-type?                identityref
       +-- termination-type?        identityref
       +-- bit-stuffing?            boolean
       +-- wavelength-assignment?   identityref
       +-- gsnr-margin?             snr



Busi, et al.            Expires 8 September 2022                [Page 6]


Internet-Draft      Yang for Optical Path Computation         March 2022


     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
     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:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /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-always
               /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:
       +--:(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
               /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
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-out-segment
               /tepc:label-restrictions/tepc:label-restriction:



Busi, et al.            Expires 8 September 2022                [Page 7]


Internet-Draft      Yang for Optical Path Computation         March 2022


       +-- grid-type?   identityref
       +-- priority?    uint8
     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:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- (single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?                    l0-types:cwdm-n
     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:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- (single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?                    l0-types:cwdm-n
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /tepc:route-object-exclude-always/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- (single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?                    l0-types:cwdm-n



Busi, et al.            Expires 8 September 2022                [Page 8]


Internet-Draft      Yang for Optical Path Computation         March 2022


     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /tepc:route-object-include-exclude/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- (single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?                    l0-types:cwdm-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-start/tepc:te-label/tepc:technology:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- dwdm-n?   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?   l0-types:cwdm-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:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- dwdm-n?   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?   l0-types:cwdm-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:
       +--:(wson)
          +-- (l0-grid-type)?
             +--:(dwdm)
             |  +-- wson-dwdm-channel-spacing?   identityref
             +--:(cwdm)
                +-- wson-cwdm-channel-spacing?   identityref
     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:



Busi, et al.            Expires 8 September 2022                [Page 9]


Internet-Draft      Yang for Optical Path Computation         March 2022


       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- dwdm-n?   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?   l0-types:cwdm-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-end/tepc:te-label/tepc:technology:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- dwdm-n?   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?   l0-types:cwdm-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:
       +--:(wson)
          +-- (l0-grid-type)?
             +--:(dwdm)
             |  +-- wson-dwdm-channel-spacing?   identityref
             +--:(cwdm)
                +-- wson-cwdm-channel-spacing?   identityref
     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:
       +--:(wson)
          +-- (grid-type)?
             +--:(dwdm)
             |  +-- (single-or-super-channel)?
             |     +--:(single)
             |     |  +-- dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +-- cwdm-n?                    l0-types:cwdm-n
     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:
       +--:(wson)
          +--ro (grid-type)?
             +--:(dwdm)



Busi, et al.            Expires 8 September 2022               [Page 10]


Internet-Draft      Yang for Optical Path Computation         March 2022


             |  +--ro (single-or-super-channel)?
             |     +--:(single)
             |     |  +--ro dwdm-n?              l0-types:dwdm-n
             |     +--:(super)
             |        +--ro subcarrier-dwdm-n*   l0-types:dwdm-n
             +--:(cwdm)
                +--ro cwdm-n?                    l0-types:cwdm-n

                Figure 2: WSON path computation tree diagram

3.2.  Flexi-grid Path Computation Tree Diagrams

   Figure 3 below shows the tree diagram of the YANG data model defined
   in module ietf-flexi-grid-path-computation.yang.

   module: ietf-flexi-grid-path-computation

     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request:
       +-- fec-type?                identityref
       +-- termination-type?        identityref
       +-- bit-stuffing?            boolean
       +-- wavelength-assignment?   identityref
       +-- gsnr-margin?             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:
       +--ro estimated-gsnr?   snr
     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:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /tepc:route-object-exclude-always/tepc:type:
       +--:(oms-element)
          +-- oms-element-uid?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info



Busi, et al.            Expires 8 September 2022               [Page 11]


Internet-Draft      Yang for Optical Path Computation         March 2022


               /tepc:path-request/tepc:explicit-route-objects-always
               /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:
       +--:(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
               /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:
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             +--:(super)
                +-- subcarrier-flexi-n* [flexi-n]
                   +-- flexi-n    l0-types:flexi-n



Busi, et al.            Expires 8 September 2022               [Page 12]


Internet-Draft      Yang for Optical Path Computation         March 2022


                   +-- 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:
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             +--:(super)
                +-- subcarrier-flexi-n* [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-always
               /tepc:route-object-exclude-always/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             +--:(super)
                +-- subcarrier-flexi-n* [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-always
               /tepc:route-object-include-exclude/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             +--:(super)
                +-- subcarrier-flexi-n* [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
               /tepc:label-restrictions/tepc:label-restriction
               /tepc:label-start/tepc:te-label/tepc:technology:
       +--:(flexi-grid)
          +-- flexi-n?   l0-types:flexi-n



Busi, et al.            Expires 8 September 2022               [Page 13]


Internet-Draft      Yang for Optical Path Computation         March 2022


     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:
       +--:(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:
       +--:(flexi-grid)
          +-- flexi-grid-channel-spacing?   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:
       +--:(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-end/tepc:te-label/tepc:technology:
       +--:(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:
       +--:(flexi-grid)
          +-- flexi-grid-channel-spacing?   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:
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             +--:(super)
                +-- subcarrier-flexi-n* [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



Busi, et al.            Expires 8 September 2022               [Page 14]


Internet-Draft      Yang for Optical Path Computation         March 2022


               /tepc:path-route-objects/tepc:path-route-object/tepc:type
               /tepc:label/tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(flexi-grid)
          +--ro (single-or-super-channel)?
             +--:(single)
             |  +--ro flexi-n?              l0-types:flexi-n
             |  +--ro flexi-m?              l0-types:flexi-m
             +--:(super)
                +--ro subcarrier-flexi-n* [flexi-n]
                   +--ro flexi-n    l0-types:flexi-n
                   +--ro flexi-m?   l0-types:flexi-m

             Figure 3: Flexi-grid path computation tree diagram

3.3.  OTN Path Computation Tree Diagrams

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

   module: ietf-otn-path-computation

     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:te-bandwidth/tepc:technology:
       +--:(otn)
          +-- otn
             +-- odu-type?                     identityref
             +-- (oduflex-type)?
                +--:(generic)
                |  +-- nominal-bit-rate        uint64
                +--:(cbr)
                |  +-- client-type             identityref
                +--:(gfp-n-k)
                |  +-- gfp-n                   uint8
                |  +-- gfp-k?                  gfp-k
                +--:(flexe-client)
                |  +-- flexe-client            flexe-client-rate
                +--:(flexe-aware)
                |  +-- flexe-aware-n           uint16
                +--:(packet)
                   +-- opuflex-payload-rate    uint64
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:tunnel-attributes/tepc:te-bandwidth
               /tepc:technology:
       +--:(otn)
          +-- otn
             +-- odu-type?                     identityref
             +-- (oduflex-type)?
                +--:(generic)



Busi, et al.            Expires 8 September 2022               [Page 15]


Internet-Draft      Yang for Optical Path Computation         March 2022


                |  +-- nominal-bit-rate        uint64
                +--:(cbr)
                |  +-- client-type             identityref
                +--:(gfp-n-k)
                |  +-- gfp-n                   uint8
                |  +-- gfp-k?                  gfp-k
                +--:(flexe-client)
                |  +-- flexe-client            flexe-client-rate
                +--:(flexe-aware)
                |  +-- flexe-aware-n           uint16
                +--:(packet)
                   +-- opuflex-payload-rate    uint64
     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:te-bandwidth/tepc:technology:
       +--:(otn)
          +--ro otn
             +--ro odu-type?                     identityref
             +--ro (oduflex-type)?
                +--:(generic)
                |  +--ro nominal-bit-rate        uint64
                +--:(cbr)
                |  +--ro client-type             identityref
                +--:(gfp-n-k)
                |  +--ro gfp-n                   uint8
                |  +--ro gfp-k?                  gfp-k
                +--:(flexe-client)
                |  +--ro flexe-client            flexe-client-rate
                +--:(flexe-aware)
                |  +--ro flexe-aware-n           uint16
                +--:(packet)
                   +--ro opuflex-payload-rate    uint64
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment
               /tepc:label-restrictions/tepc:label-restriction:
       +-- range-type?      otn-label-range-type
       +-- tsg?             identityref
       +-- odu-type-list*   identityref
       +-- priority?        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:
       +-- range-type?      otn-label-range-type
       +-- tsg?             identityref
       +-- odu-type-list*   identityref
       +-- priority?        uint8
     augment /te:tunnels-path-compute/te:input/te:path-compute-info



Busi, et al.            Expires 8 September 2022               [Page 16]


Internet-Draft      Yang for Optical Path Computation         March 2022


               /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:
       +--:(otn)
          +-- otn-tpn?   otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   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:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(otn)
          +-- otn-tpn?   otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /tepc:route-object-exclude-always/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(otn)
          +-- otn-tpn?   otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:explicit-route-objects-always
               /tepc:route-object-include-exclude/tepc:type/tepc:label
               /tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(otn)
          +-- otn-tpn?   otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   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
               /tepc:label-start/tepc:te-label/tepc:technology:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     augment /te:tunnels-path-compute/te:input/te:path-compute-info
               /tepc:path-request/tepc:path-in-segment
               /tepc:label-restrictions/tepc:label-restriction



Busi, et al.            Expires 8 September 2022               [Page 17]


Internet-Draft      Yang for Optical Path Computation         March 2022


               /tepc:label-end/tepc:te-label/tepc:technology:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     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:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     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:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     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:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     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:
       +--:(otn)
          +-- (range-type)?
             +--:(trib-port)
             |  +-- otn-tpn?   otn-tpn
             +--:(trib-slot)
                +-- otn-ts?    otn-ts
     augment /te:tunnels-path-compute/te:input/te:path-compute-info



Busi, et al.            Expires 8 September 2022               [Page 18]


Internet-Draft      Yang for Optical Path Computation         March 2022


               /tepc:synchronization/tepc:exclude-objects/tepc:excludes
               /tepc:type/tepc:label/tepc:label-hop/tepc:te-label
               /tepc:technology:
       +--:(otn)
          +-- otn-tpn?   otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   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
               /tepc:path-route-objects/tepc:path-route-object/tepc:type
               /tepc:label/tepc:label-hop/tepc:te-label/tepc:technology:
       +--:(otn)
          +--ro otn-tpn?   otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string

                Figure 4: OTN path computation tree diagram

4.  YANG Models for Optical Path Computation

4.1.  YANG Model for WSON Path Computation

   <CODE BEGINS> file "ietf-wson-path-computation@2022-03-07.yang"
   module ietf-wson-path-computation {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-wson-path-computation";
     prefix "wson-pc";

     import ietf-te-path-computation {
       prefix "tepc";
       revision-date "2021-09-06";
       reference
         "I-D.ietf-teas-yang-path-computation-14: Yang model
         for requesting Path Computation.";
     }

     import ietf-te {
       prefix "te";
       revision-date "2021-02-20";
       reference
         "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic
         Engineering Tunnels and Interfaces. ";
     }

     import ietf-layer0-types {
       prefix "l0-types";
     }



Busi, et al.            Expires 8 September 2022               [Page 19]


Internet-Draft      Yang for Optical Path Computation         March 2022


     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
       WSON Path Computation.

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

       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 Simplified 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 "2022-03-07" {
       description
         "Initial version.";
       reference
         "RFC XXXX: YANG Model for OTN and Optical Path Computation";
       // RFC Ed.: replace XXXX with actual RFC number, update date
       // information and remove this note
     }

    /*
     * Data nodes
     */




Busi, et al.            Expires 8 September 2022               [Page 20]


Internet-Draft      Yang for Optical Path Computation         March 2022


     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request" {
       description
          "Augment with additional constraints for WSON paths.";
       uses l0-types:l0-tunnel-attributes;
       uses l0-types:l0-path-constraints;
     }

     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 WSON paths.";
       uses l0-types:l0-path-properties;
     }

     /*
      * Augment Route 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-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" {
       description
         "Augment the route hop for the optimization of the explicit



Busi, et al.            Expires 8 September 2022               [Page 21]


Internet-Draft      Yang for Optical Path Computation         March 2022


         route objects included 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-always/"
           + "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-always/"
           + "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/"



Busi, et al.            Expires 8 September 2022               [Page 22]


Internet-Draft      Yang for Optical Path Computation         March 2022


           + "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";
       }
     }

     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";
       }
     }

     /*
      * 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:l0-label-range-info;
     }



Busi, et al.            Expires 8 September 2022               [Page 23]


Internet-Draft      Yang for Optical Path Computation         March 2022


     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:l0-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 wson {
         uses l0-types:wson-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
         route objects included by the path computation of the requested
         path.";
       case wson {
         uses l0-types:wson-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "tepc:route-object-exclude-always/tepc:type/tepc:label/"
           + "tepc:label-hop/tepc:te-label/tepc:technology" {
       description



Busi, et al.            Expires 8 September 2022               [Page 24]


Internet-Draft      Yang for Optical Path Computation         March 2022


         "Augment TE label hop for the explicit route objects always
         excluded by the path computation of the requested path.";
       case wson {
         uses l0-types:wson-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "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 wson {
         uses l0-types:wson-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 wson {
         uses l0-types:wson-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
         "Augment TE label range end for the ingress segment
         of the requested path.";
       case wson {
         uses l0-types:wson-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



Busi, et al.            Expires 8 September 2022               [Page 25]


Internet-Draft      Yang for Optical Path Computation         March 2022


         "Augment TE label range step for the ingress segment
         of the requested path.";
       case wson {
         uses l0-types:wson-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 wson {
         uses l0-types:wson-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 wson {
         uses l0-types:wson-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
         "Augment TE label range end for the egress segment
         of the requested path.";
       case wson {
         uses l0-types:wson-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



Busi, et al.            Expires 8 September 2022               [Page 26]


Internet-Draft      Yang for Optical Path Computation         March 2022


         "Augment TE label hop for the explicit route objects to always
         exclude from synchronized path computation.";
       case wson {
         uses l0-types:wson-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 wson {
         uses l0-types:wson-label-hop;
       }
     }
   }
   <CODE ENDS>

                Figure 5: WSON path computation YANG module

4.2.  YANG Model for Flexi-grid Path Computation

   <CODE BEGINS> file "ietf-flexi-grid-path-computation@2022-03-07.yang"
   module ietf-flexi-grid-path-computation {
     yang-version 1.1;
     namespace
       "urn:ietf:params:xml:ns:yang:ietf-flexi-grid-path-computation";
     prefix "flexg-pc";

     import ietf-te-path-computation {
       prefix "tepc";
       revision-date "2021-09-06";
       reference
         "I-D.ietf-teas-yang-path-computation-14: Yang model
         for requesting Path Computation.";
     }

     import ietf-te {
       prefix "te";
       revision-date "2021-02-20";
       reference
         "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic



Busi, et al.            Expires 8 September 2022               [Page 27]


Internet-Draft      Yang for Optical Path Computation         March 2022


         Engineering Tunnels and Interfaces. ";
     }

     import ietf-layer0-types {
       prefix "l0-types";
     }

     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
       Flexi-grid Path Computation.

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

       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 Simplified 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 "2022-03-07" {
       description
         "Initial version.";
       reference
         "RFC XXXX: YANG Model for OTN and Optical Path Computation";
       // RFC Ed.: replace XXXX with actual RFC number, update date



Busi, et al.            Expires 8 September 2022               [Page 28]


Internet-Draft      Yang for Optical Path Computation         March 2022


       // information and remove this note
     }

    /*
     * Data nodes
     */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request" {
       description
          "Augment with additional constraints flexi-grid
           media channel.";
       uses l0-types:l0-tunnel-attributes;
       uses l0-types:l0-path-constraints;
     }

     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 Flexi-grid paths.";
       uses l0-types:l0-path-properties;
     }

     /*
      * Augment Route 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-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";
       }
     }



Busi, et al.            Expires 8 September 2022               [Page 29]


Internet-Draft      Yang for Optical Path Computation         March 2022


     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
         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-always/"
           + "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-always/"
           + "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.";



Busi, et al.            Expires 8 September 2022               [Page 30]


Internet-Draft      Yang for Optical Path Computation         March 2022


         }
         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" {
       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";
       }
     }

     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";
       }
     }

     /*
      * Augment TE label range information
      */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"



Busi, et al.            Expires 8 September 2022               [Page 31]


Internet-Draft      Yang for Optical Path Computation         March 2022


           + "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:flexi-grid-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:flexi-grid-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 flexi-grid {
         uses l0-types:flexi-grid-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
         route objects included by the path computation of the requested
         path.";
       case flexi-grid {
         uses l0-types:flexi-grid-label-hop;



Busi, et al.            Expires 8 September 2022               [Page 32]


Internet-Draft      Yang for Optical Path Computation         March 2022


       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "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 flexi-grid {
         uses l0-types:flexi-grid-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "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 flexi-grid {
         uses l0-types:flexi-grid-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 flexi-grid {
         uses l0-types:flexi-grid-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
         "Augment TE label range end for the ingress segment
         of the requested path.";
       case flexi-grid {
         uses l0-types:flexi-grid-label-start-end;



Busi, et al.            Expires 8 September 2022               [Page 33]


Internet-Draft      Yang for Optical Path Computation         March 2022


       }
     }

     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 flexi-grid {
         uses l0-types:flexi-grid-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 flexi-grid {
         uses l0-types:flexi-grid-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 flexi-grid {
         uses l0-types:flexi-grid-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
         "Augment TE label range end for the egress segment
         of the requested path.";
       case flexi-grid {
         uses l0-types:flexi-grid-label-step;



Busi, et al.            Expires 8 September 2022               [Page 34]


Internet-Draft      Yang for Optical Path Computation         March 2022


       }
     }

     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 flexi-grid {
         uses l0-types:flexi-grid-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 flexi-grid {
         uses l0-types:flexi-grid-label-hop;
       }
     }
   }
   <CODE ENDS>

             Figure 6: Flexi-grid path computation YANG module

4.3.  YANG Model for OTN Path Computation

   <CODE BEGINS> file "ietf-otn-path-computation@2021-10-07.yang"
   module ietf-otn-path-computation {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-otn-path-computation";
     prefix "otn-pc";

     import ietf-te-path-computation {
       prefix "tepc";
       revision-date "2021-09-06";
       reference
       "I-D.ietf-teas-yang-path-computation-14: Yang model
       for requesting Path Computation.";



Busi, et al.            Expires 8 September 2022               [Page 35]


Internet-Draft      Yang for Optical Path Computation         March 2022


     }

     import ietf-te {
       prefix "te";
       revision-date "2021-02-20";
       reference
         "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic
         Engineering Tunnels and Interfaces. ";
     }

     import ietf-layer1-types {
       prefix "l1-types";
       reference
       "I-D.ietf-ccamp-layer1-types:
        A YANG Data Model for Layer 1 Types. ";
     }

     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
       OTN Path Computation.

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

       Copyright (c) 2021 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 Simplified 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).



Busi, et al.            Expires 8 September 2022               [Page 36]


Internet-Draft      Yang for Optical Path Computation         March 2022


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

     revision "2021-10-07" {
       description
         "Initial version.";
       reference
         "RFC XXXX: YANG Model for OTN and Optical Path Computation";
       // RFC Ed.: replace XXXX with actual RFC number, update date
       // information and remove this note
     }

    /*
     * Data nodes
     */

     /*
      * Augment TE bandwidth
      */

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:te-bandwidth/tepc:technology" {
       description
         "Augment TE bandwidth of the requested path.";
       case otn {
         uses l1-types:otn-path-bandwidth;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:tunnel-attributes/tepc:te-bandwidth/"
           + "tepc:technology" {
       description
         "Augment TE bandwidth of the requested tunnel attributes.";
       case otn {
         uses l1-types:otn-path-bandwidth;
       }
     }

     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:te-bandwidth/tepc:technology" {
       description
         "Augment TE bandwidth of the computed path properties.";
       case otn {
         uses l1-types:otn-path-bandwidth;



Busi, et al.            Expires 8 September 2022               [Page 37]


Internet-Draft      Yang for Optical Path Computation         March 2022


       }
     }

     /*
      * 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 l1-types:otn-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 l1-types:otn-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 otn {
         uses l1-types:otn-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/"



Busi, et al.            Expires 8 September 2022               [Page 38]


Internet-Draft      Yang for Optical Path Computation         March 2022


           + "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
         route objects included by the path computation of the requested
         path.";
       case otn {
         uses l1-types:otn-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "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 otn {
         uses l1-types:otn-label-hop;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
           + "tepc:path-request/tepc:explicit-route-objects-always/"
           + "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 otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"



Busi, et al.            Expires 8 September 2022               [Page 39]


Internet-Draft      Yang for Optical Path Computation         March 2022


           + "tepc:path-request/tepc:path-in-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-end/tepc:te-label/tepc:technology" {
       description
         "Augment TE label range end for the ingress segment
         of the requested path.";
       case otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-label-start-end;
       }
     }

     augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"



Busi, et al.            Expires 8 September 2022               [Page 40]


Internet-Draft      Yang for Optical Path Computation         March 2022


           + "tepc:path-request/tepc:path-out-segment/"
           + "tepc:label-restrictions/tepc:label-restriction/"
           + "tepc:label-step/tepc:technology" {
       description
         "Augment TE label range end for the egress segment
         of the requested path.";
       case otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-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 otn {
         uses l1-types:otn-label-hop;
       }
     }
   }
   <CODE ENDS>

                 Figure 7: OTN path computation YANG module

5.  Manageability Considerations

   TBD.






Busi, et al.            Expires 8 September 2022               [Page 41]


Internet-Draft      Yang for Optical Path Computation         March 2022


6.  Security Considerations

   <Add any security considerations>

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-otn-path-computation
     Registrant Contact:  The IESG.
     XML: N/A, the requested URI is an XML namespace.

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

     URI: urn:ietf:params:xml:ns:yang:ietf-flexi-grid-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-otn-path-computation
     namespace: urn:ietf:params:xml:ns:yang:ietf-otn-path-computation
     prefix:    otn-pc
     reference: this document

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

     name:      ietf-flexi-grid-path-computation
     namespace: ietf:params:xml:ns:yang:ietf-flexi-grid-path-computation
     prefix:    flexg-pc
     reference: this document

8.  References

8.1.  Normative References









Busi, et al.            Expires 8 September 2022               [Page 42]


Internet-Draft      Yang for Optical Path Computation         March 2022


   [I-D.ietf-ccamp-layer0-types-ext]
              Beller, D., Belotti, S., Zheng, H., Busi, I., and E. L.
              Rouzic, "A YANG Data Model for Layer 0 Types - Revision
              2", Work in Progress, Internet-Draft, draft-ietf-ccamp-
              layer0-types-ext-01, 25 October 2021,
              <https://www.ietf.org/archive/id/draft-ietf-ccamp-layer0-
              types-ext-01.txt>.

   [I-D.ietf-ccamp-layer1-types]
              Zheng, H. and I. Busi, "A YANG Data Model for Layer 1
              Types", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-layer1-types-11, 7 September 2021,
              <https://www.ietf.org/archive/id/draft-ietf-ccamp-layer1-
              types-11.txt>.

   [I-D.ietf-teas-yang-path-computation]
              Busi, I., Belotti, S., Dios, O. G. D., Sharma, A., Shi,
              Y., and D. Ceccarelli, "A YANG Data Model for requesting
              path computation", Work in Progress, Internet-Draft,
              draft-ietf-teas-yang-path-computation-17, 7 March 2022,
              <https://www.ietf.org/archive/id/draft-ietf-teas-yang-
              path-computation-17.txt>.

   [I-D.ietf-teas-yang-te]
              Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I.,
              and O. G. D. Dios, "A YANG Data Model for Traffic
              Engineering Tunnels, Label Switched Paths and Interfaces",
              Work in Progress, Internet-Draft, draft-ietf-teas-yang-te-
              29, 7 February 2022, <https://www.ietf.org/archive/id/
              draft-ietf-teas-yang-te-29.txt>.

   [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>.

   [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 8 September 2022               [Page 43]


Internet-Draft      Yang for Optical Path Computation         March 2022


   [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>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8776]  Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
              "Common YANG Data Types for Traffic Engineering",
              RFC 8776, DOI 10.17487/RFC8776, June 2020,
              <https://www.rfc-editor.org/info/rfc8776>.

   [RFC9093]  Zheng, H., Lee, Y., Guo, A., Lopez, V., and D. King, "A
              YANG Data Model for Layer 0 Types", RFC 9093,
              DOI 10.17487/RFC9093, August 2021,
              <https://www.rfc-editor.org/info/rfc9093>.

8.2.  Informative References

   [I-D.ietf-ccamp-flexigrid-tunnel-yang]
              Mendez, J. E. L. D. V., Burrero, D. P., King, D., Lopez,
              V., Busi, I., Dios, O. G. D., Lee, Y., and G. Galimberti,
              "A YANG Data Model for Flexi-Grid Tunnels", Work in
              Progress, Internet-Draft, draft-ietf-ccamp-flexigrid-
              tunnel-yang-00, 9 November 2021,
              <https://www.ietf.org/archive/id/draft-ietf-ccamp-
              flexigrid-tunnel-yang-00.txt>.

   [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-06, 22 October 2021,
              <https://www.ietf.org/archive/id/draft-ietf-ccamp-wson-
              tunnel-model-06.txt>.

   [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,
              draft-ietf-teas-actn-poi-applicability-06, 7 March 2022,
              <https://www.ietf.org/archive/id/draft-ietf-teas-actn-poi-
              applicability-06.txt>.





Busi, et al.            Expires 8 September 2022               [Page 44]


Internet-Draft      Yang for Optical Path Computation         March 2022


   [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>.

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.

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





Busi, et al.            Expires 8 September 2022               [Page 45]


Internet-Draft      Yang for Optical Path Computation         March 2022


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
















































Busi, et al.            Expires 8 September 2022               [Page 46]