<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.19 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-ccamp-otn-path-computation-yang-02" category="std" submissionType="IETF">

  <front>
    <title abbrev="YANG for OTN Path Computation">A YANG Data Model for requesting Path Computation in an Optical Transport Network (OTN)</title>

    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>

    <date year="2023" month="October" day="20"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<t>This document provides a mechanism to request path computation in an Optical Transport Network (OTN) by augmenting the Remote Procedure Calls (RPCs) defined in RFC YYYY.</t>

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



    </abstract>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t><xref target="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 an
Optical Transport Network (OTN).</t>

<t>This document defines a YANG data model, which augment the generic Path Computation RPC defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, with OTN technology-specific augmentations required to request path computation to an underlying OTN SDN controller. These models allow
a client to delegate path computation tasks to the underlying SDN controller without having to obtain OTN detailed information from the controller and performing feasible path computation itself.</t>

<section anchor="terminology-and-notations"><name>Terminology and Notations</name>

<t>Refer to <xref target="I-D.ietf-ccamp-otn-topo-yang"/> and <xref target="I-D.ietf-ccamp-layer1-types"/>
  for the OTN specific terms used in this document.</t>

<t>The following terms are defined in <xref target="RFC7950"/> and are not
  redefined here:</t>

<t><list style="symbols">
  <t>client</t>
  <t>server</t>
  <t>augment</t>
  <t>data model</t>
  <t>data node</t>
</list></t>

<t>The following terms are defined in <xref target="RFC6241"/> and are not redefined
  here:</t>

<t><list style="symbols">
  <t>configuration data</t>
  <t>state data</t>
</list></t>

<t>The terminology for describing YANG data models is found in
  <xref target="RFC7950"/>.</t>

</section>
<section anchor="tree-diagram"><name>Tree Diagram</name>

<t>A simplified graphical representation of the data model is used in
  <xref target="otn-pc-tree"/> of this document.  The meaning of the symbols in these
  diagrams is defined in <xref target="RFC8340"/>.</t>

</section>
<section anchor="prefix-in-data-node-names"><name>Prefix in Data Node Names</name>

<t>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
  <xref target="tab-prefixes"/>.</t>

<texttable title="Prefixes and corresponding YANG modules" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>l1-types</c>
      <c>ietf-layer1-types</c>
      <c>[RFCZZZZ]</c>
      <c>te</c>
      <c>ietf-te</c>
      <c>[RFCKKKK]</c>
      <c>te-pc</c>
      <c>ietf-te-path-computation</c>
      <c>[RFCYYYY]</c>
      <c>otn-pc</c>
      <c>ietf-otn-path-computation</c>
      <c>RFCXXXX</c>
</texttable>

<t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.
Please replace YYYY with the RFC number assigned to <xref target="I-D.ietf-teas-yang-path-computation"/>.
Please replace ZZZZ with the RFC number assigned to <xref target="I-D.ietf-ccamp-layer1-types"/>.
Please replace KKKK with the RFC number assigned to <xref target="I-D.ietf-teas-yang-te"/>.
Please remove this note.</t>

</section>
</section>
<section anchor="yang-data-model-for-otn-path-computation"><name>YANG Data Model for OTN Path Computation</name>

<section anchor="yang-model-overview"><name>YANG Model Overview</name>

<t>The YANG data model for requesting OTN path computation is defined as an augmentation of the generic Path Computation RPC defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, as shown in <xref target="fig-otn-pc"/>.</t>

<figure title="Relationship between OTN and TE path computation models" anchor="fig-otn-pc"><artwork type="ascii-art"><![CDATA[
                    +--------------------------+    o: augment
       TE generic   | ietf-te-path-computation |
                    +--------------------------+
                                 o 
                                 |
                                 |
                                 |
                   +---------------------------+
       OTN         | ietf-otn-path-computation |
                   +---------------------------+
]]></artwork></figure>

<t>The entities and Traffic Engineering (TE) attributes, such as requested path and tunnel attributes, defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, are still applicable when requesting OTN path computation and the models defined in this document only specifies the additional OTN technology-specific attributes/information, using the attributes defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>

<t>The YANG module ietf-otn-path-computation defined in this document conforms
to the Network Management Datastore Architecture (NMDA) defined in
<xref target="RFC8342"/>.</t>

</section>
<section anchor="otn-te-bandwidh"><name>Bandwidth Augmentation</name>

<t>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 <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>

</section>
<section anchor="otn-te-label"><name>Label Augmentations</name>

<t>The OTN path computation model augments all the occurrences of the label-restriction list
with OTN technology-specific attributes using the
otn-label-range-info grouping defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>

<t>Moreover, the model augments all the occurrences of the te-label
container with the OTN technology-specific attributes using the
otn-label-start-end, otn-label-hop and otn-label-step groupings defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>

</section>
</section>
<section anchor="otn-pc-tree"><name>OTN Path Computation Tree Diagram</name>

<t><xref target="fig-otn-pc-tree"/> below shows the tree diagram of the YANG data model defined in module ietf-otn-path-computation.yang.</t>

<figure title="OTN path computation tree diagram" anchor="fig-otn-pc-tree"><artwork type="ascii-art" name="ietf-otn-path-computation.tree"><![CDATA[
module: ietf-otn-path-computation

  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:te-bandwidth/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- odu-type?                     identityref
          +-- (oduflex-type)?
             +--:(generic)
             |  +-- nominal-bit-rate        union
             +--:(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    union
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:tunnel-attributes/te-pc:te-bandwidth
            /te-pc:technology:
    +--:(otn)
       +-- otn
          +-- odu-type?                     identityref
          +-- (oduflex-type)?
             +--:(generic)
             |  +-- nominal-bit-rate        union
             +--:(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    union
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /te-pc:response/te-pc:computed-paths-properties
            /te-pc:computed-path-properties/te-pc:path-properties
            /te-pc:te-bandwidth/te-pc:technology:
    +--:(otn)
       +--ro otn
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(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    union
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-in-segment
            /te-pc:label-restrictions/te-pc:label-restriction:
    +-- otn-label-range
       +-- 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
            /te-pc:path-request/te-pc:path-out-segment
            /te-pc:label-restrictions/te-pc:label-restriction:
    +-- otn-label-range
       +-- 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
            /te-pc:path-request/te-pc:optimizations/te-pc:algorithm
            /te-pc:metric/te-pc:optimization-metric
            /te-pc:explicit-route-exclude-objects
            /te-pc:route-object-exclude-object/te-pc:type/te-pc:label
            /te-pc:label-hop/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:optimizations/te-pc:algorithm
            /te-pc:metric/te-pc:optimization-metric
            /te-pc:explicit-route-include-objects
            /te-pc:route-object-include-object/te-pc:type/te-pc:label
            /te-pc:label-hop/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:explicit-route-objects-always
            /te-pc:route-object-exclude-always/te-pc:type/te-pc:label
            /te-pc:label-hop/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:explicit-route-objects-always
            /te-pc:route-object-include-exclude/te-pc:type
            /te-pc:label/te-pc:label-hop/te-pc:te-label
            /te-pc:technology:
    +--:(otn)
       +-- otn
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-in-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-start/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-in-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-end/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-in-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-step/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-out-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-start/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-out-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-end/te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:path-request/te-pc:path-out-segment
            /te-pc:label-restrictions/te-pc:label-restriction
            /te-pc:label-step/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- (range-type)?
             +--:(trib-port)
             |  +-- tpn?   otn-tpn
             +--:(trib-slot)
                +-- ts?    otn-ts
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /te-pc:synchronization/te-pc:exclude-objects
            /te-pc:excludes/te-pc:type/te-pc:label/te-pc:label-hop
            /te-pc:te-label/te-pc:technology:
    +--:(otn)
       +-- otn
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /te-pc:response/te-pc:computed-paths-properties
            /te-pc:computed-path-properties/te-pc:path-properties
            /te-pc:path-route-objects/te-pc:path-route-object
            /te-pc:type/te-pc:label/te-pc:label-hop/te-pc:te-label
            /te-pc:technology:
    +--:(otn)
       +--ro otn
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
]]></artwork></figure>

</section>
<section anchor="otn-pc-yang"><name>YANG Model for OTN Path Computation</name>

<figure title="OTN path computation YANG module" anchor="fig-otn-pc-yang"><sourcecode type="yang" markers="true" name="ietf-otn-path-computation@2022-07-10.yang"><![CDATA[
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 "te-pc";
    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-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: <https://datatracker.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) 2022 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

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

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

  revision "2022-09-12" {
    description
      "Initial version.";
    reference
      "RFC XXXX: A YANG Data Model for requesting Path Computation
      in an Optical Transport Network (OTN)";
    // 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/"
        + "te-pc:path-request/te-pc:te-bandwidth/te-pc: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/"
        + "te-pc:tunnel-attributes/te-pc:te-bandwidth/"
        + "te-pc: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/te-pc:response/"
        + "te-pc:computed-paths-properties/"
        + "te-pc:computed-path-properties/te-pc:path-properties/"
        + "te-pc:te-bandwidth/te-pc:technology" {
    description
      "Augment TE bandwidth of the computed path properties.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  /*
   * Augment TE label range information
   */

  augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
        + "te-pc:path-request/te-pc:path-in-segment/"
        + "te-pc:label-restrictions/te-pc: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/"
        + "te-pc:path-request/te-pc:path-out-segment/"
        + "te-pc:label-restrictions/te-pc: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/"
        + "te-pc:path-request/te-pc:optimizations/te-pc:algorithm/"
        + "te-pc:metric/te-pc:optimization-metric/"
        + "te-pc:explicit-route-exclude-objects/"
        + "te-pc:route-object-exclude-object/te-pc:type/te-pc:label/"
        + "te-pc:label-hop/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:optimizations/te-pc:algorithm/"
        + "te-pc:metric/te-pc:optimization-metric/"
        + "te-pc:explicit-route-include-objects/"
        + "te-pc:route-object-include-object/te-pc:type/te-pc:label/"
        + "te-pc:label-hop/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:explicit-route-objects-always/"
        + "te-pc:route-object-exclude-always/te-pc:type/te-pc:label/"
        + "te-pc:label-hop/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:explicit-route-objects-always/"
        + "te-pc:route-object-include-exclude/te-pc:type/"
        + "te-pc:label/te-pc:label-hop/te-pc:te-label/"
        + "te-pc: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/"
        + "te-pc:path-request/te-pc:path-in-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-start/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:path-in-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-end/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:path-in-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-step/te-pc: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/"
        + "te-pc:path-request/te-pc:path-out-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-start/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:path-out-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-end/te-pc:te-label/te-pc: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/"
        + "te-pc:path-request/te-pc:path-out-segment/"
        + "te-pc:label-restrictions/te-pc:label-restriction/"
        + "te-pc:label-step/te-pc: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/"
        + "te-pc:synchronization/te-pc:exclude-objects/"
        + "te-pc:excludes/te-pc:type/te-pc:label/te-pc:label-hop/"
        + "te-pc:te-label/te-pc: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/te-pc:response/"
        + "te-pc:computed-paths-properties/"
        + "te-pc:computed-path-properties/te-pc:path-properties/"
        + "te-pc:path-route-objects/te-pc:path-route-object/"
        + "te-pc:type/te-pc:label/"
        + "te-pc:label-hop/te-pc:te-label/te-pc:technology" {
    description
      "Augment TE label hop for the route object of the computed
      path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="manageability-considerations"><name>Manageability Considerations</name>

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

<t>Future versions of this document will contain additional information.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The YANG module defined in this document will be accessed via the NETCONF protocol <xref target="RFC6241"/> or RESTCONF protocol <xref target="RFC8040"/>. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t>

<t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> provides the means to restrict access to particular NETCONF or RESTCONF users to a pre-configured subset of all available NETCONF or RESTCONF protocol operations and content.</t>

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

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

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document registers the following URIs in the "ns" subregistry
   within the "IETF XML registry" <xref target="RFC3688"/>.</t>

<figure><artwork><![CDATA[
  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.
]]></artwork></figure>

<t>This document registers the following YANG module in the "YANG Module Names"
   registry <xref target="RFC7950"/>.</t>

<figure><artwork><![CDATA[
  name:      ietf-otn-path-computation
  namespace: urn:ietf:params:xml:ns:yang:ietf-otn-path-computation
  prefix:    otn-pc
  reference: this document
]]></artwork></figure>

</section>


  </middle>

  <back>

    <references title='Normative References'>




<reference anchor='I-D.ietf-teas-yang-path-computation' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-path-computation-21'>
   <front>
      <title>A YANG Data Model for requesting path computation</title>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Oscar Gonzalez de Dios' initials='O. G.' surname='de Dios'>
         <organization>Telefonica</organization>
      </author>
      <author fullname='Anurag Sharma' initials='A.' surname='Sharma'>
         <organization>Google</organization>
      </author>
      <author fullname='Yan Shi' initials='Y.' surname='Shi'>
         <organization>China Unicom</organization>
      </author>
      <date day='7' month='July' year='2023'/>
      <abstract>
	 <t>   There are scenarios, typically in a hierarchical Software-Defined
   Networking (SDN) context, where the topology information provided by
   a Traffic Engineering (TE) network provider may be insufficient for
   its client to perform multi-domain path computation.  In these cases
   the client would need to request the TE network provider to compute
   some intra-domain paths to be used by the client to choose the
   optimal multi-domain paths.

   This document provides a mechanism to request path computation by
   augmenting the Remote Procedure Calls (RPCs) defined in RFC YYYY.

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

   Moreover, this document describes some use cases where the path
   computation request, via YANG-based protocols (e.g., NETCONF or
   RESTCONF), can be needed.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-yang-path-computation-21'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-layer1-types' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-layer1-types-16'>
   <front>
      <title>A YANG Data Model for Layer 1 Types</title>
      <author fullname='Haomian Zheng' initials='H.' surname='Zheng'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei Technologies</organization>
      </author>
      <date day='10' month='July' year='2023'/>
      <abstract>
	 <t>   This document defines a collection of common data types and groupings
   in the YANG data modeling language for use with layer 1 networks.
   These derived common types and groupings are intended to be imported
   by modules that specify OTN networks, such as topology, tunnel,
   client signal adaptation and service.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-layer1-types-16'/>
   
</reference>

<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>

<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'/>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6241'/>
  <seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>

<reference anchor='RFC8340' target='https://www.rfc-editor.org/info/rfc8340'>
  <front>
    <title>YANG Tree Diagrams</title>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='L. Berger' initials='L.' role='editor' surname='Berger'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='215'/>
  <seriesInfo name='RFC' value='8340'/>
  <seriesInfo name='DOI' value='10.17487/RFC8340'/>
</reference>


<reference anchor='I-D.ietf-teas-yang-te' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-te-34'>
   <front>
      <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths and Interfaces</title>
      <author fullname='Tarek Saad' initials='T.' surname='Saad'>
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname='Rakesh Gandhi' initials='R.' surname='Gandhi'>
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>Alef Edge</organization>
      </author>
      <author fullname='Vishnu Pavan Beeram' initials='V. P.' surname='Beeram'>
         <organization>Juniper Networks</organization>
      </author>
      <author fullname='Igor Bryskin' initials='I.' surname='Bryskin'>
         <organization>Individual</organization>
      </author>
      <date day='1' month='October' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

   This model covers data for configuration, operational state, remote
   procedural calls, and event notifications.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-yang-te-34'/>
   
</reference>

<reference anchor='RFC8342' target='https://www.rfc-editor.org/info/rfc8342'>
  <front>
    <title>Network Management Datastore Architecture (NMDA)</title>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'/>
    <author fullname='P. Shafer' initials='P.' surname='Shafer'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <author fullname='R. Wilton' initials='R.' surname='Wilton'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8342'/>
  <seriesInfo name='DOI' value='10.17487/RFC8342'/>
</reference>

<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8040'/>
  <seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>

<reference anchor='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'>
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname='E. Rescorla' initials='E.' surname='Rescorla'/>
    <date month='August' year='2018'/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8446'/>
  <seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>

<reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'>
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='91'/>
  <seriesInfo name='RFC' value='8341'/>
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
</reference>

<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
  <front>
    <title>The IETF XML Registry</title>
    <author fullname='M. Mealling' initials='M.' surname='Mealling'/>
    <date month='January' year='2004'/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='81'/>
  <seriesInfo name='RFC' value='3688'/>
  <seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-ccamp-otn-topo-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-otn-topo-yang-17'>
   <front>
      <title>A YANG Data Model for Optical Transport Network Topology</title>
      <author fullname='Haomian Zheng' initials='H.' surname='Zheng'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>IBM Corporation</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Oscar Gonzalez de Dios' initials='O. G.' surname='de Dios'>
         <organization>Telefonica</organization>
      </author>
      <date day='10' month='July' year='2023'/>
      <abstract>
	 <t>   This document describes a YANG data model to describe the topologies
   of an Optical Transport Network (OTN).  It is independent of control
   plane protocols and captures topological and resource-related
   information pertaining to OTN.  This model enables clients, which
   interact with a transport domain controller, for OTN topology-related
   operations such as obtaining the relevant topology resource
   information.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-otn-topo-yang-17'/>
   
</reference>


<reference anchor='I-D.draft-gbb-ccamp-optical-path-computation-yang' target='https://datatracker.ietf.org/doc/html/draft-gbb-ccamp-optical-path-computation-yang-02'>
   <front>
      <title>YANG Data Models for requesting Path Computation in Optical Networks</title>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Aihua Guo' initials='A.' surname='Guo'>
         <organization>Futurewei Technologies</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <date day='12' month='September' year='2022'/>
      <abstract>
	 <t>   This document provides a mechanism to request path computation in
   Optical Networks (WSON and Flexi-grid) by augmenting the Remote
   Procedure Calls (RPCs) defined in RFC YYYY.

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-gbb-ccamp-optical-path-computation-yang-02'/>
   
</reference>


<reference anchor='I-D.ietf-teas-actn-poi-applicability' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-actn-poi-applicability-09'>
   <front>
      <title>Applicability of Abstraction and Control of Traffic Engineered Networks (ACTN) to Packet Optical Integration (POI)</title>
      <author fullname='Fabio Peruzzini' initials='F.' surname='Peruzzini'>
         <organization>TIM</organization>
      </author>
      <author fullname='Jean-Francois Bouquier' initials='J.' surname='Bouquier'>
         <organization>Vodafone</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Daniel King' initials='D.' surname='King'>
         <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='Daniele Ceccarelli' initials='D.' surname='Ceccarelli'>
         <organization>Cisco</organization>
      </author>
      <date day='7' month='July' year='2023'/>
      <abstract>
	 <t>   This document considers the applicability of Abstraction and Control
   of TE Networks (ACTN) architecture to Packet Optical Integration
   (POI)in the context of IP/MPLS and optical internetworking. It
   identifies the YANG data models defined by the IETF to support this
   deployment architecture and specific scenarios relevant to Service
   Providers.

   Existing IETF protocols and data models are identified for each
   multi-layer (packet over optical) scenario with a specific focus on
   the MPI (Multi-Domain Service Coordinator to Provisioning Network
   Controllers Interface)in the ACTN architecture.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-actn-poi-applicability-09'/>
   
</reference>




    </references>


<section anchor="change-log"><name>Change Log</name>

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

<t>The WDM technology capabilities were kept in <xref target="I-D.draft-gbb-ccamp-optical-path-computation-yang"/>, and the OTN capabilities were moved into this document.</t>

<t>Editors note, please remove this appendix before publication.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors of this document would like to thank the authors of <xref target="I-D.ietf-teas-actn-poi-applicability"/> for having identified the gap and requirements to trigger this work.</t>

<t>This document was prepared using kramdown.</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="D." surname="King" fullname="Daniel King">
      <organization>Old Dog Consulting</organization>
      <address>
        <email>daniel@olddog.co.uk</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
Y2bpJ02sY6JVy+P8LyA1xOoKlPB/XQrzgiFqAAA=

-->

</rfc>

