<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ccamp-otn-path-computation-yang-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="YANG for OTN Path Computation">A YANG Data Model for requesting Path Computation in an Optical Transport Network (OTN)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-path-computation-yang-09"/>
    <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="2026" month="August" day="13"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 46?>

<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>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-ccamp-wg.github.io/ietf-ccamp-otn-path-computation/draft-ietf-ccamp-otn-path-computation-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ccamp-otn-path-computation-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Common Control and Measurement Plane Working Group mailing list (<eref target="mailto:ccamp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccamp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccamp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-ccamp-wg/ietf-ccamp-otn-path-computation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<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="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <ul empty="true">
          <li>
            <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
          </li>
        </ul>
        <t>This document contains placeholder values that need to be replaced
with finalized values at the time of publication.  This note
summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>YYYY --&gt; the assigned RFC number for <xref target="I-D.ietf-teas-yang-path-computation"/></t>
          </li>
          <li>
            <t>ZZZZ --&gt; the assigned RFC number for <xref target="I-D.ietf-ccamp-layer1-types"/></t>
          </li>
          <li>
            <t>KKKK --&gt; the assigned RFC number for <xref target="I-D.ietf-teas-yang-te"/></t>
          </li>
          <li>
            <t>2026-05-19 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
      <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>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined
  here:</t>
        <ul spacing="normal">
          <li>
            <t>configuration data</t>
          </li>
          <li>
            <t>state data</t>
          </li>
        </ul>
        <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>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">l1-types</td>
              <td align="left">ietf-layer1-types</td>
              <td align="left">[RFCZZZZ]</td>
            </tr>
            <tr>
              <td align="left">te</td>
              <td align="left">ietf-te</td>
              <td align="left">[RFCKKKK]</td>
            </tr>
            <tr>
              <td align="left">te-pc</td>
              <td align="left">ietf-te-path-computation</td>
              <td align="left">[RFCYYYY]</td>
            </tr>
            <tr>
              <td align="left">otn-pc</td>
              <td align="left">ietf-otn-path-computation</td>
              <td align="left">RFCXXXX</td>
            </tr>
          </tbody>
        </table>
      </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 anchor="fig-otn-pc">
          <name>Relationship between OTN and TE path computation models</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="336" viewBox="0 0 336 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 104,144 L 104,176" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,64" fill="none" stroke="black"/>
                <path d="M 216,72 L 216,144" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,64" fill="none" stroke="black"/>
                <path d="M 328,144 L 328,176" fill="none" stroke="black"/>
                <path d="M 112,32 L 328,32" fill="none" stroke="black"/>
                <path d="M 112,64 L 328,64" fill="none" stroke="black"/>
                <path d="M 104,144 L 328,144" fill="none" stroke="black"/>
                <path d="M 104,176 L 328,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="224,72 212,66.4 212,77.6" fill="black" transform="rotate(270,216,72)"/>
                <g class="text">
                  <text x="12" y="52">TE</text>
                  <text x="56" y="52">generic</text>
                  <text x="220" y="52">ietf-te-path-computation</text>
                  <text x="260" y="116">Augments</text>
                  <text x="16" y="164">OTN</text>
                  <text x="216" y="164">ietf-otn-path-computation</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                    +--------------------------+
       TE generic   | ietf-te-path-computation |
                    +--------------------------+
                                 ^
                                 |
                                 | Augments
                                 |
                   +-------------+-------------+
       OTN         | ietf-otn-path-computation |
                   +---------------------------+
]]></artwork>
          </artset>
        </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>
      </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-path-bandwidth grouping 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-yang">
      <name>YANG Model for OTN Path Computation</name>
      <figure anchor="fig-otn-pc-yang">
        <name>OTN path computation YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-otn-path-computation@2026-07-29.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;
    reference
      "RFC YYYY: A YANG Data Model for requesting path computation";
  }
  import ietf-te {
    prefix te;
    reference
      "RFC KKKK: A YANG Data Model for Traffic Engineering Tunnels,
                 Label Switched Paths, and Interfaces";
  }
  import ietf-layer1-types {
    prefix l1-types;
    reference
      "RFC ZZZZ: Common YANG Data Types for Layer 1 Networks";
  }

  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.

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

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

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

  revision 2026-07-29 {
    description
      "Initial version.";
    reference
      "RFC XXXX: A YANG Data Model for requesting Path Computation
                 in an Optical Transport Network (OTN)";
  }

  /*
   * 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/"
        + "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/"
        + "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 step 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="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7" sectionFormat="of" target="RFC9907"/>.</t>
      <t>The "ietf-otn-path-computation" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
protocols (1) have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>,
and QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>
      <t>There are no particularly sensitive RPC or action operations.</t>
      <t>This YANG module uses groupings from other YANG modules that
define nodes that may be considered sensitive or vulnerable
in network environments.  Refer to the Security Considerations
of <xref target="I-D.ietf-ccamp-layer1-types"/> for information as to which nodes may
be considered sensitive or vulnerable in network environments.</t>
      <t>The YANG module defined in this document augments the "tunnels-path-compute" RPC, defined in <xref target="I-D.ietf-teas-yang-te"/> and in <xref target="I-D.ietf-teas-yang-path-computation"/>, with OTN technology-specific attributes. The security considerations provided in <xref target="I-D.ietf-teas-yang-te"/> and in <xref target="I-D.ietf-teas-yang-path-computation"/> are also applicable to the YANG module defined in this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns"
registry within the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <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>
      <t>IANA is requested to register the following YANG module in the "YANG
Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters"
registry group.</t>
      <artwork><![CDATA[
   Name:         ietf-otn-path-computation
   Maintained by IANA?  N
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-otn-path-computation
   Prefix:       otn-pc
   Reference:    RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="Yan Shi" initials="Y." surname="Shi">
              <organization>China Unicom</organization>
            </author>
            <date day="12" month="May" year="2026"/>
            <abstract>
              <t>   In certain scenarios — particularly within hierarchical Software-
   Defined Networking (SDN) environments—the topology information
   provided by a Traffic Engineering (TE) network provider may be
   insufficient for a client to perform end-to-end multi-domain path
   computation.  In such cases, the client may need to delegate the
   computation of specific intra-domain paths to the TE provider,
   leveraging the resulting path segments to construct optimal multi-
   domain end-to-end paths.

   This document defines a mechanism to enable path computation requests
   by augmenting the Remote Procedure Calls (RPCs) specified in RFC
   YYYY.  The augmented RPCs support path computation on demand,
   allowing clients to request intra-domain TE path computations from
   the provider while maintaining control over inter-domain path
   selection.

   Additionally, this document outlines several use cases in which such
   path computation requests are beneficial, particularly in
   environments where YANG-based management protocols—such as NETCONF or
   RESTCONF—are used for network automation and control.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-path-computation-28"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-layer1-types">
          <front>
            <title>Common YANG Data Types for Layer 1 Networks</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="16" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a collection of common data types, identities,
   and groupings in the YANG data modeling language.  These derived
   common data types, identities, and groupings are intended to be
   imported by modules that model Layer 1 configuration and state
   capabilities.  The Layer 1 types are representative of Layer 1 client
   signals applicable to transport networks, such as Optical Transport
   Networks (OTN).  The Optical Transport Network (OTN) data structures
   are included in this document as Layer 1 types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-layer1-types-19"/>
        </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>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="26" month="March" year="2026"/>
            <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 pertinent to TE
   tunnels, TE LSPs, and TE interfaces that are independent of any
   technology or dataplane encapsulation.  The model is divided into two
   YANG modules that address both device-specific and device-independent
   data, supporting configuration, operational state, Remote Procedure
   Calls (RPCs), and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-44"/>
        </reference>
        <reference anchor="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">
          <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">
          <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="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="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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>Individual</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="16" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for representing, retrieving,
   and manipulating Optical Transport Network (OTN) topologies.  It is
   independent of control plane protocols and captures topological and
   resource-related information pertaining to OTN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-topo-yang-21"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="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="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="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="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="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>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-tunnel-model">
          <front>
            <title>A YANG Data Model for Optical Transport Network (OTN) Tunnels and Label Switched Paths</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="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Yunbin Xu" initials="Y." surname="Xu">
              <organization>CAICT</organization>
            </author>
            <date day="27" month="May" year="2026"/>
            <abstract>
              <t>   This document describes the YANG data model for tunnels in OTN TE
   networks.  The model can be used to do the configuration in order to
   establish the tunnel in OTN network.  This work is independent with
   the control plane protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-tunnel-model-25"/>
        </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"/>
        </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>FiberCop</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="11" month="June" year="2026"/>
            <abstract>
              <t>   This document explores the applicability of the Abstraction and
   Control of TE Networks (ACTN) architecture to Packet Optical
   Integration (POI) within the context of IP/MPLS and optical
   internetworking.  It examines the YANG data models defined by the
   IETF that enable an ACTN-based deployment architecture and highlights
   specific scenarios pertinent to Service Providers.

   Existing IETF protocols and data models are identified for each
   multi-technology scenario (packet over optical), particularly
   emphasising the Multi-Domain Service Coordinator to Provisioning
   Network Controller Interface (MPI) within the ACTN architecture

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-poi-applicability-19"/>
        </reference>
      </references>
    </references>
    <?line 504?>

<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. See <xref target="RFC8340"/> for an explanation of the symbols used. The data type of every leaf node is shown near the right end of the corresponding line.</t>
      <figure anchor="fig-otn-pc-tree">
        <name>OTN path computation tree diagram</name>
        <sourcecode type="yangtree" 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-bandwidth
          +-- 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-bandwidth
          +-- 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-bandwidth
          +--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-label
          +-- 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-label
          +-- 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
            /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-label
          +-- 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
            /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-label
          +-- 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-label
          +-- tpn?   otn-tpn
          +-- 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-label
          +-- tpn?   otn-tpn
          +-- 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-label-step
          +-- tpn?   otn-tpn
          +-- 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-label
          +-- tpn?   otn-tpn
          +-- 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-label
          +-- tpn?   otn-tpn
          +-- 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-label-step
          +-- tpn?   otn-tpn
          +-- 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-label
          +-- 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-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
]]></sourcecode>
      </figure>
    </section>
    <section anchor="json-examples">
      <name>JSON Examples</name>
      <t>This appendix contains an example of an instance data tree in JSON
encoding <xref target="RFC7951"/>.</t>
      <t>The example instantiates the "ietf-otn-path-computation" model to request the computation of the primary and secondary paths described in <xref section="B" sectionFormat="of" target="I-D.ietf-ccamp-otn-tunnel-model"/>.</t>
      <artwork type="ascii-art"><![CDATA[
POST /restconf/operations/ietf-te:tunnels-path-compute HTTP/1.1
Host: example.com
Content-Type: application/yang-data+json

]]></artwork>
      <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-te:tunnels-path-compute": {
    "path-compute-info": {
      "ietf-te-path-computation:path-request": [
        {
          "request-id": 1,
          "tunnel-reference": {
            "tunnel-attributes-ref": "OTN Tunnel Example",
            "path-name": "primary-path-1",
            "primary-path": {
              "co-routed": true
            }
          }
        },
        {
          "request-id": 2,
          "tunnel-reference": {
            "tunnel-attributes-ref": "OTN Tunnel Example",
            "path-name": "secondary-path-1",
            "secondary-path": {
              "primary-path-ref": [
                {
                  "path-request-ref": 1
                }
              ]
            }
          }
        }
      ],
      "ietf-te-path-computation:tunnel-attributes": [
        {
          "tunnel-name": "OTN Tunnel Example",
          "encoding": "ietf-te-types:lsp-encoding-oduk",
          "switching-type": "ietf-te-types:switching-otn",
          "source": {
            "node-id": "example:D1",
            "te-node-id": "192.0.0.1"
          },
          "destination": {
            "node-id": "example:D2",
            "te-node-id": "192.0.0.2"
          },
          "bidirectional": true,
          "protection-type": "ietf-te-types:lsp-protection-unidir-1-\
                                                             plus-1",
          "network-id": "example:otn-topology-example",
          "te-topology-identifier": {
            "topology-id": "otn-topology-example"
          },
          "te-bandwidth": {
            "ietf-otn-path-computation:otn-bandwidth": {
              "odu-type": "ietf-layer1-types:ODU2"
            }
          }
        }
      ]
    }
  }
}
]]></sourcecode>
    </section>
    <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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
SM6BCP8GyMWdupVzAAA=

-->

</rfc>
