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


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-ccamp-otn-path-computation-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <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="2022" month="October" day="10"/>

    
    <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'>
   <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='Daniele Ceccarelli' initials='D.' surname='Ceccarelli'>
         <organization>Ericsson</organization>
      </author>
      <date day='22' month='March' year='2022'/>
      <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.

   This document defines a YANG data model which contains Remote
   Procedure Calls (RPCs) to request path computation.  This model
   complements the solution, defined in RFC YYYY, to configure a TE
   tunnel path in &quot;compute-only&quot; mode.

   [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-18'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-yang-path-computation-18.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-ccamp-layer1-types'>
   <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='11' month='July' year='2022'/>
      <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-14'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-ccamp-layer1-types-14.txt' type='TXT'/>
</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'><organization/></author>
<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'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<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'><organization/></author>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<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'>
   <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>Juniper Networks</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>IBM Corporation</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>
      <author fullname='Oscar Gonzalez de Dios' initials='O. G.' surname='de Dios'>
         <organization>Telefonica</organization>
      </author>
      <date day='11' month='July' year='2022'/>
      <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-30'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-yang-te-30.txt' type='TXT'/>
</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'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'><organization/></author>
<author fullname='P. Shafer' initials='P.' surname='Shafer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='R. Wilton' initials='R.' surname='Wilton'><organization/></author>
<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'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<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'><organization/></author>
<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'><organization/></author>
<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'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<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'><organization/></author>
<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'>
   <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='11' month='July' year='2022'/>
      <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-15'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-ccamp-otn-topo-yang-15.txt' type='TXT'/>
</reference>


<reference anchor='I-D.draft-gbb-ccamp-optical-path-computation-yang'>
   <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'/>
   <format target='https://www.ietf.org/archive/id/draft-gbb-ccamp-optical-path-computation-yang-02.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-teas-actn-poi-applicability'>
   <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>Ericsson</organization>
      </author>
      <date day='10' month='July' year='2022'/>
      <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 being defined by the IETF to support
   this deployment architecture and specific scenarios relevant for
   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-07'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-actn-poi-applicability-07.txt' type='TXT'/>
</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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

-->

</rfc>

