<?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.17 (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-optical-path-computation-yang-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Yang for Optical Path Computation">YANG Data Models for requesting Path Computation in Optical Networks</title>

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

    <date year="2023" month="April" day="24"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <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.</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 a single-layer optical technologies, including 
Optical Transport Network (OTN), Wavelength Switched Optical Networks (WSON), Flexi-grid, 
and multi-layer Optical network.</t>

<t>This document defines YANG data models, which augment the generic Path Computation RPC defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, with technology-specific augmentations required to request path computation to an underlying Optical SDN controller. These models allow
a client to delegate path computation tasks to the underlying Optical SDN controller without having to obtain optical-layer information from the controller and performing feasible path computation itself. This is especially helpful in cases where computing optically-feasible paths require knowledge of physical-layer states, such as optical impairments, which are visible only to the Optical controller.</t>

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

<t>Refer to <xref target="RFC7446"/> and <xref target="RFC7581"/> for the key terms used in this
  document.  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="optical-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>l0-types</c>
      <c>ietf-layer0-types</c>
      <c>[RFCZZZZ]</c>
      <c>te</c>
      <c>ietf-te</c>
      <c>[RFCKKKK]</c>
      <c>tepc</c>
      <c>ietf-te-path-computation</c>
      <c>[RFCYYYY]</c>
      <c>wson-pc</c>
      <c>ietf-wson-path-computation</c>
      <c>RFCXXXX</c>
      <c>flexg-pc</c>
      <c>ietf-flexi-grid-path-computation</c>
      <c>RFCXXXX</c>
</texttable>

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

</section>
</section>
<section anchor="yang-data-models-for-optical-path-computation"><name>YANG Data Models for Optical Path Computation</name>

<section anchor="yang-models-overview"><name>YANG Models Overview</name>

<t>The YANG data models for requesting WSON and Flexi-grid path computation are defined as augmentations of the generic Path Computation RPC defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, as shown in <xref target="fig-optical-pc"/>.</t>

<figure title="Relationship between WSON, Flexi-grid and TE path computation models" anchor="fig-optical-pc"><artwork type="ascii-art" name="optical-path-computation.txt"><![CDATA[
                    +--------------------------+    o: augment
       TE generic   | ietf-te-path-computation |
                    +--------------------------+
                          o             o
                          |             |
                          |             |
              +-----------+             +-----------+
              |                                     |
              |                                     |
+----------------------------+  +----------------------------------+
| ietf-wson-path-computation |  | ietf-flexi-grid-path-computation |
+----------------------------+  +----------------------------------+
            WSON                            Flexi-grid

]]></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 WSON and Flexi-grid path computation and the models defined in this document only specifies the additional technology-specific attributes/information, using the attributes defined in <xref target="I-D.ietf-ccamp-rfc9093-bis"/>.</t>

</section>
<section anchor="attributes-augmentation"><name>Attributes Augmentation</name>

<t>The common characteristics for layer 0 (WSON and Flexi-grid) tunnels are under definition in <xref target="I-D.ietf-ccamp-rfc9093-bis"/> and re-used in the ietf-wson-path-computation and ietf-flexi-grid-path-computation YANG models</t>

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

<t>As described in Section 4.2 of <xref target="RFC7699"/>, there is some overlap
between bandwidth and label in layer0.</t>

<t>The WSON and flexi-grid label resource information described in <xref target="optical-te-label"/>,
is sufficient to describe also the spectrum resources within WSON and
flexi-grid networks. Therefore, the model does not define any augmentation
for the te-bandwidth containers defined in <xref target="I-D.ietf-teas-yang-path-computation"/>.</t>

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

<t>The models augment all the occurrences of the label-restriction list
with WSON and Flexi-grid technology-specific attributes using the 
l0-label-range-info and flexi-grid-label-range-info groupings defined in <xref target="I-D.ietf-ccamp-rfc9093-bis"/>.</t>

<t>Moreover, the models augment all the occurrences of the te-label
container with the WSON, Flexi-grid and OTN technology-specific attributes using the
wson-label-start-end, wson-label-hop, wson-label-step,
flexi-grid-label-start-end, flexi-grid-label-hop and flexi-grid-label-step defined in <xref target="I-D.ietf-ccamp-rfc9093-bis"/>.</t>

</section>
</section>
<section anchor="optical-pc-tree"><name>Optical Path Computation Tree Diagrams</name>

<section anchor="wson-pc-tree"><name>WSON Path Computation Tree Diagrams</name>

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

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

  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request:
    +-- bit-stuffing?            boolean
    +-- wavelength-assignment?   identityref
    +-- gsnr-margin?             snr
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties:
    +--ro estimated-gsnr?   snr
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-exclude-objects
            /tepc:route-object-exclude-object/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-include-objects
            /tepc:route-object-include-object/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-exclude-always/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-include-exclude/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:synchronization/tepc:exclude-objects/tepc:excludes
            /tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties
            /tepc:path-route-objects/tepc:path-route-object
            /tepc:type:
    +--:(oms-element)
       +--ro oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction:
    +-- grid-type?   identityref
    +-- priority?    uint8
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction:
    +-- grid-type?   identityref
    +-- priority?    uint8
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-exclude-objects
            /tepc:route-object-exclude-object/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- (single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?                    l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-include-objects
            /tepc:route-object-include-object/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- (single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?                    l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-exclude-always/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- (single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?                    l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-include-exclude/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- (single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?                    l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-start/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- dwdm-n?   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?   l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-end/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- dwdm-n?   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?   l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-step/tepc:technology:
    +--:(wson)
       +-- (l0-grid-type)?
          +--:(dwdm)
          |  +-- wson-dwdm-channel-spacing?   identityref
          +--:(cwdm)
             +-- wson-cwdm-channel-spacing?   identityref
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-start/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- dwdm-n?   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?   l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-end/tepc:te-label/tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- dwdm-n?   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?   l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-step/tepc:technology:
    +--:(wson)
       +-- (l0-grid-type)?
          +--:(dwdm)
          |  +-- wson-dwdm-channel-spacing?   identityref
          +--:(cwdm)
             +-- wson-cwdm-channel-spacing?   identityref
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:synchronization/tepc:exclude-objects/tepc:excludes
            /tepc:type/tepc:label/tepc:label-hop/tepc:te-label
            /tepc:technology:
    +--:(wson)
       +-- (grid-type)?
          +--:(dwdm)
          |  +-- (single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +-- cwdm-n?                    l0-types:cwdm-n
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties
            /tepc:path-route-objects/tepc:path-route-object/tepc:type
            /tepc:label/tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wson)
       +--ro (grid-type)?
          +--:(dwdm)
          |  +--ro (single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?              l0-types:dwdm-n
          |     +--:(super)
          |        +--ro subcarrier-dwdm-n*   l0-types:dwdm-n
          +--:(cwdm)
             +--ro cwdm-n?                    l0-types:cwdm-n
]]></artwork></figure>

</section>
<section anchor="flexg-pc-tree"><name>Flexi-grid Path Computation Tree Diagrams</name>

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

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

  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request:
    +-- bit-stuffing?            boolean
    +-- wavelength-assignment?   identityref
    +-- gsnr-margin?             snr
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties:
    +--ro estimated-gsnr?   snr
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-exclude-objects
            /tepc:route-object-exclude-object/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-include-objects
            /tepc:route-object-include-object/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-exclude-always/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-include-exclude/tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:synchronization/tepc:exclude-objects/tepc:excludes
            /tepc:type:
    +--:(oms-element)
       +-- oms-element-uid?   string
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties
            /tepc:path-route-objects/tepc:path-route-object
            /tepc:type:
    +--:(oms-element)
       +--ro oms-element-uid?   string
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-exclude-objects
            /tepc:route-object-exclude-object/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- (single-or-super-channel)?
          +--:(single)
          |  +-- flexi-n?              l0-types:flexi-n
          |  +-- flexi-m?              l0-types:flexi-m
          +--:(super)
             +-- subcarrier-flexi-n* [flexi-n]
                +-- flexi-n    l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:optimizations/tepc:algorithm
            /tepc:metric/tepc:optimization-metric
            /tepc:explicit-route-include-objects
            /tepc:route-object-include-object/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- (single-or-super-channel)?
          +--:(single)
          |  +-- flexi-n?              l0-types:flexi-n
          |  +-- flexi-m?              l0-types:flexi-m
          +--:(super)
             +-- subcarrier-flexi-n* [flexi-n]
                +-- flexi-n    l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-exclude-always/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- (single-or-super-channel)?
          +--:(single)
          |  +-- flexi-n?              l0-types:flexi-n
          |  +-- flexi-m?              l0-types:flexi-m
          +--:(super)
             +-- subcarrier-flexi-n* [flexi-n]
                +-- flexi-n    l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects-always
            /tepc:route-object-include-exclude/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- (single-or-super-channel)?
          +--:(single)
          |  +-- flexi-n?              l0-types:flexi-n
          |  +-- flexi-m?              l0-types:flexi-m
          +--:(super)
             +-- subcarrier-flexi-n* [flexi-n]
                +-- flexi-n    l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-start/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-n?   l0-types:flexi-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-end/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-n?   l0-types:flexi-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-in-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-step/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-grid-channel-spacing?   identityref
       +-- flexi-n-step?                 uint8
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-start/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-n?   l0-types:flexi-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-end/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-n?   l0-types:flexi-n
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:path-out-segment
            /tepc:label-restrictions/tepc:label-restriction
            /tepc:label-step/tepc:technology:
    +--:(flexi-grid)
       +-- flexi-grid-channel-spacing?   identityref
       +-- flexi-n-step?                 uint8
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:synchronization/tepc:exclude-objects/tepc:excludes
            /tepc:type/tepc:label/tepc:label-hop/tepc:te-label
            /tepc:technology:
    +--:(flexi-grid)
       +-- (single-or-super-channel)?
          +--:(single)
          |  +-- flexi-n?              l0-types:flexi-n
          |  +-- flexi-m?              l0-types:flexi-m
          +--:(super)
             +-- subcarrier-flexi-n* [flexi-n]
                +-- flexi-n    l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  augment /te:tunnels-path-compute/te:output/te:path-compute-result
            /tepc:response/tepc:computed-paths-properties
            /tepc:computed-path-properties/tepc:path-properties
            /tepc:path-route-objects/tepc:path-route-object/tepc:type
            /tepc:label/tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
]]></artwork></figure>

</section>
</section>
<section anchor="optical-pc-yang"><name>YANG Models for Optical Path Computation</name>

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

<figure title="WSON path computation YANG module" anchor="fig-wson-pc-yang"><sourcecode type="yang" markers="true" name="ietf-wson-path-computation@2022-09-08.yang"><![CDATA[
module ietf-wson-path-computation {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-wson-path-computation";
  prefix "wson-pc";

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

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

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

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

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

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

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

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

    The model fully conforms to the Network Management 
    Datastore Architecture (NMDA).
    
    Copyright (c) 2022 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the 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-08" {
    description
      "Initial version.";
    reference
      "RFC XXXX: YANG Data Models for requesting Path Computation
      in Optical Networks.";
    // RFC Ed.: replace XXXX with actual RFC number, update date 
    // information and remove this note
  }

 /*
  * Data nodes
  */

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

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

  /*
   * Augment Route Hop
   */

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

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

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

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

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

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

  /*
   * Augment TE label range information
   */

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

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

  /*
   * Augment TE label.
   */

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

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

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

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

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

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

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

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

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

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

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

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

</section>
<section anchor="flexg-pc-yang"><name>YANG Model for Flexi-grid Path Computation</name>

<figure title="Flexi-grid path computation YANG module" anchor="fig-flexg-pc-yang"><sourcecode type="yang" markers="true" name="ietf-flexi-grid-path-computation@2022-09-08.yang"><![CDATA[
module ietf-flexi-grid-path-computation {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-flexi-grid-path-computation";
  prefix "flexg-pc";

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

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

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

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

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

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

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

  description
    "This module defines a model for requesting
    Flexi-grid Path Computation.

    The model fully conforms to the Network Management 
    Datastore Architecture (NMDA).
    
    Copyright (c) 2022 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the 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-08" {
    description
      "Initial version.";
    reference
      "RFC XXXX: YANG Data Models for requesting Path Computation
      in Optical Networks.";
    // RFC Ed.: replace XXXX with actual RFC number, update date 
    // information and remove this note
  }

 /*
  * Data nodes
  */

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

  augment "/te:tunnels-path-compute/te:output/"
        + "te:path-compute-result/tepc:response/"
        + "tepc:computed-paths-properties/"
        + "tepc:computed-path-properties/tepc:path-properties" {
    description
       "Augment with additional properties for Flexi-grid paths.";
    uses l0-types:l0-path-properties;
  }

  /*
   * Augment Route Hop
   */

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

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

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

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

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

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

  /*
   * Augment TE label range information
   */

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

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

  /*
   * Augment TE label.
   */

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

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

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

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

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

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

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

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

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

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

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

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

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

<t>This document provides a method for requesting path computations for WSON and Flexi-Grid tunnels. Consideration of mechanisms to gather and collate information required for the path computations will be necessary. Furthermore, storing path computation requests and responses and triggering actions will also need to be carefully managed and secured.</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-wson-path-computation
  Registrant Contact:  The IESG.
  XML: N/A, the requested URI is an XML namespace.

  URI: urn:ietf:params:xml:ns:yang:ietf-flexi-grid-path-computation
  Registrant Contact:  The IESG.
  XML: N/A, the requested URI is an XML namespace.
]]></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-wson-path-computation
  namespace: urn:ietf:params:xml:ns:yang:ietf-wson-path-computation
  prefix:    wson-pc
  reference: this document

  name:      ietf-flexi-grid-path-computation
  namespace: ietf:params:xml:ns:yang:ietf-flexi-grid-path-computation
  prefix:    flexg-pc
  reference: this document
]]></artwork></figure>

</section>


  </middle>

  <back>


    <references title='Normative References'>




<reference anchor='I-D.ietf-teas-yang-path-computation' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-path-computation-20'>
   <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>
      <author fullname='Daniele Ceccarelli' initials='D.' surname='Ceccarelli'>
         <organization>Cisco</organization>
      </author>
      <date day='10' month='March' year='2023'/>
      <abstract>
	 <t>   There are scenarios, typically in a hierarchical Software-Defined
   Networking (SDN) context, where the topology information provided by
   a Traffic Engineering (TE) network provider may be insufficient for
   its client to perform multi-domain path computation.  In these cases
   the client would need to request the TE network provider to compute
   some intra-domain paths to be used by the client to choose the
   optimal multi-domain paths.

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

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

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-yang-path-computation-20'/>
   
</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-ccamp-rfc9093-bis' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-rfc9093-bis-04'>
   <front>
      <title>A YANG Data Model for Layer 0 Types</title>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Dieter Beller' initials='D.' surname='Beller'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Haomian Zheng' initials='H.' surname='Zheng'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Esther Le Rouzic' initials='E.' surname='Le Rouzic'>
         <organization>Orange</organization>
      </author>
      <author fullname='Aihua Guo' initials='A.' surname='Guo'>
         <organization>Futurewei Technologies</organization>
      </author>
      <author fullname='Daniel King' initials='D.' surname='King'>
         <organization>University of Lancaster</organization>
      </author>
      <date day='12' month='March' year='2023'/>
      <abstract>
	 <t>   This document defines a collection of common data types and groupings
   in the YANG data modeling language.  These derived common types and
   groupings are intended to be imported by modules that model Layer 0
   optical Traffic Engineering (TE) configuration and state capabilities
   such as Wavelength Switched Optical Networks (WSONs) and flexi-grid
   Dense Wavelength Division Multiplexing (DWDM) networks.

   This document obsoletes RFC 9093.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-rfc9093-bis-04'/>
   
</reference>


<reference anchor='I-D.ietf-teas-yang-te' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-te-32'>
   <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>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='12' month='March' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

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

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



<reference anchor='RFC7699' target='https://www.rfc-editor.org/info/rfc7699'>
<front>
<title>Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers</title>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<author fullname='D. King' initials='D.' surname='King'><organization/></author>
<author fullname='Y. Li' initials='Y.' surname='Li'><organization/></author>
<author fullname='F. Zhang' initials='F.' surname='Zhang'><organization/></author>
<date month='November' year='2015'/>
<abstract><t>GMPLS supports the description of optical switching by identifying entries in fixed lists of switchable wavelengths (called grids) through the encoding of lambda labels.  Work within the ITU-T Study Group 15 has defined a finer-granularity grid, and the facility to flexibly select different widths of spectrum from the grid.  This document defines a new GMPLS lambda label format to support this flexi-grid.</t><t>This document updates RFCs 3471 and 6205 by introducing a new label format.</t></abstract>
</front>
<seriesInfo name='RFC' value='7699'/>
<seriesInfo name='DOI' value='10.17487/RFC7699'/>
</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='RFC7446' target='https://www.rfc-editor.org/info/rfc7446'>
<front>
<title>Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks</title>
<author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'><organization/></author>
<author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'><organization/></author>
<author fullname='D. Li' initials='D.' surname='Li'><organization/></author>
<author fullname='W. Imajuku' initials='W.' surname='Imajuku'><organization/></author>
<date month='February' year='2015'/>
<abstract><t>This document provides a model of information needed by the Routing and Wavelength Assignment (RWA) process in Wavelength Switched Optical Networks (WSONs).  The purpose of the information described in this model is to facilitate constrained optical path computation in WSONs.  This model takes into account compatibility constraints between WSON signal attributes and network elements but does not include constraints due to optical impairments.  Aspects of this information that may be of use to other technologies utilizing a GMPLS control plane are discussed.</t></abstract>
</front>
<seriesInfo name='RFC' value='7446'/>
<seriesInfo name='DOI' value='10.17487/RFC7446'/>
</reference>



<reference anchor='RFC7581' target='https://www.rfc-editor.org/info/rfc7581'>
<front>
<title>Routing and Wavelength Assignment Information Encoding for Wavelength Switched Optical Networks</title>
<author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'><organization/></author>
<author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'><organization/></author>
<author fullname='D. Li' initials='D.' surname='Li'><organization/></author>
<author fullname='W. Imajuku' initials='W.' surname='Imajuku'><organization/></author>
<author fullname='J. Han' initials='J.' surname='Han'><organization/></author>
<date month='June' year='2015'/>
<abstract><t>A Wavelength Switched Optical Network (WSON) requires certain key information fields be made available to facilitate path computation and the establishment of Label Switched Paths (LSPs). The information model described in &quot;Routing and Wavelength                           Assignment Information Model for Wavelength Switched Optical Networks&quot; (RFC 7446) shows what information is required at specific points in the WSON. Part of the WSON information model contains aspects that may be of general applicability to other technologies, while other parts are specific to WSONs.</t><t>This document provides efficient, protocol-agnostic encodings for the WSON-specific information fields.  It is intended that protocol- specific documents will reference this memo to describe how information is carried for specific uses.  Such encodings can be used to extend GMPLS signaling and routing protocols.  In addition, these encodings could be used by other mechanisms to convey this same information to a Path Computation Element (PCE).</t></abstract>
</front>
<seriesInfo name='RFC' value='7581'/>
<seriesInfo name='DOI' value='10.17487/RFC7581'/>
</reference>


<reference anchor='I-D.draft-gbb-ccamp-otn-path-computation-yang' target='https://datatracker.ietf.org/doc/html/draft-gbb-ccamp-otn-path-computation-yang-02'>
   <front>
      <title>A YANG Data Model for requesting Path Computation in an Optical Transport Network (OTN)</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 an
   Optical Transport Network (OTN) 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-otn-path-computation-yang-02'/>
   
</reference>


<reference anchor='I-D.ietf-teas-actn-poi-applicability' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-actn-poi-applicability-08'>
   <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='11' month='January' year='2023'/>
      <abstract>
	 <t>   This document considers the applicability of Abstraction and Control
   of TE Networks (ACTN) architecture to Packet Optical Integration
   (POI)in the context of IP/MPLS and optical internetworking. It
   identifies the YANG data models defined by the IETF to support this
   deployment architecture and specific scenarios relevant to Service
   Providers.

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

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


<reference anchor='I-D.ietf-ccamp-wson-tunnel-model' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-wson-tunnel-model-08'>
   <front>
      <title>A Yang Data Model for WSON Tunnel</title>
      <author fullname='Young Lee' initials='Y.' surname='Lee'>
         <organization>Samsung</organization>
      </author>
      <author fullname='Haomian Zheng' initials='H.' surname='Zheng'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Aihua Guo' initials='A.' surname='Guo'>
         <organization>Futurewei</organization>
      </author>
      <author fullname='Victor Lopez' initials='V.' surname='Lopez'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Daniel King' initials='D.' surname='King'>
         <organization>Lancaster University</organization>
      </author>
      <author fullname='Bin Yeong Yoon' initials='B. Y.' surname='Yoon'>
         <organization>ETRI</organization>
      </author>
      <author fullname='Ricard Vilalta' initials='R.' surname='Vilalta'>
         <organization>CTTC</organization>
      </author>
      <date day='8' month='January' year='2023'/>
      <abstract>
	 <t>   This document provides a YANG data model for WSON TE tunnel.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-wson-tunnel-model-08'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-flexigrid-tunnel-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-flexigrid-tunnel-yang-02'>
   <front>
      <title>A YANG Data Model for Flexi-Grid Tunnels</title>
      <author fullname='Universidad Autonoma de Madrid' initials='U. A.' surname='de Madrid'>
         <organization>Naudit HPCN</organization>
      </author>
      <author fullname='Daniel Perdices Burrero' initials='D. P.' surname='Burrero'>
         <organization>Universidad Autonoma de Madrid</organization>
      </author>
      <author fullname='Daniel King' initials='D.' surname='King'>
         <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='Victor Lopez' initials='V.' surname='Lopez'>
         <organization>Nokia</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='Gabriele Galimberti' initials='G.' surname='Galimberti'>
         <organization>Cisco</organization>
      </author>
      <date day='8' month='January' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG model for managing flexi-grid optical
   tunnels (media-channels), complementing the information provided by
   the flexi-grid topology model.

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-flexigrid-tunnel-yang-02'/>
   
</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 this document, and the OTN capabilities were moved into <xref target="I-D.draft-gbb-ccamp-otn-path-computation-yang"/>.</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>The authors of this document would also like to thank 
Young Lee, 
Haomian Zheng, 
Victor Lopex, 
Ricard Vilalta, 
Bin Yeong Yoon, 
Jorge E. Lopez de Vergara Mendez, 
Daniel Perdices Burrero, 
Oscar Gonzalez de Dios, 
Gabriele Galimberti, 
Zafar Ali, 
Daniel Michaud Vallinoto and 
Dhruv Dhody 
who have contributed to the development of path computation augmentations for WSON and Flexi-grid topology in earlier versions of
<xref target="I-D.ietf-ccamp-wson-tunnel-model"/> and of <xref target="I-D.ietf-ccamp-flexigrid-tunnel-yang"/>.</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>

