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

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

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

<rfc ipr="trust200902" docName="draft-ietf-ccamp-optical-path-computation-yang-03" category="std">

  <front>
    <title abbrev="Yang for WDM Path Computation">YANG Data Models for requesting Path Computation in WDM 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="2024" month="March" day="01"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<t>This document provides a mechanism to request path computation in Wavelength-Division Multiplexing (WDM) optical networks composed of Wavelength Switched Optical Networks (WSON) and Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) switched technologies. This model augments 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 Software-Defined Network (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="wdm-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>wdm-pc</c>
      <c>ietf-wdm-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-wdm-path-computation"><name>YANG Data Models for WDM Path Computation</name>

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

<t>The YANG data models for requesting WDM 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-wdm-pc"/>.</t>

<figure title="Relationship between WDM and TE path computation models" anchor="fig-wdm-pc"><artwork type="ascii-art" name="wdm-path-computation.txt"><![CDATA[
                    +--------------------------+    o: augment
       TE generic   | ietf-te-path-computation |
                    +--------------------------+
                                 o              
                                 |              
                                 |             
                                 |     
                    +---------------------------+   
                    | ietf-wdm-path-computation |   
                    +---------------------------+   

]]></artwork></figure>

<t>The entities and Traffic Engineering (TE) attributes, such as requested path and tunnel attributes, defined in <xref target="I-D.ietf-teas-yang-path-computation"/>, are still applicable when requesting WDM 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) path computation are under definition in <xref target="I-D.ietf-ccamp-rfc9093-bis"/> and re-used in the ietf-wdm-path-computation YANG models.</t>

</section>
<section anchor="wdm-te-bandwidth"><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="wdm-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="wdm-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="wdm-pc-tree"><name>WDM Path Computation Tree Diagrams</name>

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

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

  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:tunnel-attributes:
    +-- wdm-constraint
       +-- transceiver-constraint
       |  +-- operational-modes*            string
       |  +-- tx-tune-constraints
       |  |  +-- min-central-frequency?    frequency-thz
       |  |  +-- max-central-frequency?    frequency-thz
       |  |  +-- transceiver-tunability?   frequency-ghz
       |  +-- line-coding-bitrate*          identityref
       |  +-- tx-channel-power?             l0-types:power-dbm
       |  +-- preferred-rx-channel-power?   l0-types:power-dbm
       +-- gsnr-extra-margin?             snr
       +-- use-regen?                     boolean
       +-- wavelength-conversion?         boolean
       +-- wavelength-assignment?         identityref
       +-- guard-band-size?               l0-types:frequency-thz
       +-- matching-fwd-rev-wavelength?   boolean
       +-- allow-retuning?                boolean
       +-- delta-power?                   l0-types:power-ratio
  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:numbered-node-hop:
    +-- path-in-transceiver
    |  +-- transponder-id?   uint32
    |  +-- transceivers* [lane-id]
    |     +-- lane-id                       uint8
    |     +-- transceiver-id?               uint32
    |     +-- operational-modes*            string
    |     +-- tx-tune-constraints
    |     |  +-- min-central-frequency?    frequency-thz
    |     |  +-- max-central-frequency?    frequency-thz
    |     |  +-- transceiver-tunability?   frequency-ghz
    |     +-- line-coding-bitrate*          identityref
    |     +-- tx-channel-power?             l0-types:power-dbm
    |     +-- preferred-rx-channel-power?   l0-types:power-dbm
    +-- path-out-transceiver
       +-- transponder-id?   uint32
       +-- transceivers* [lane-id]
          +-- lane-id                       uint8
          +-- transceiver-id?               uint32
          +-- operational-modes*            string
          +-- tx-tune-constraints
          |  +-- min-central-frequency?    frequency-thz
          |  +-- max-central-frequency?    frequency-thz
          |  +-- transceiver-tunability?   frequency-ghz
          +-- line-coding-bitrate*          identityref
          +-- tx-channel-power?             l0-types:power-dbm
          +-- preferred-rx-channel-power?   l0-types:power-dbm
  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
            /tepc:numbered-node-hop:
    +-- path-in-transceiver
    |  +-- transponder-id?   uint32
    |  +-- transceivers* [lane-id]
    |     +-- lane-id                       uint8
    |     +-- transceiver-id?               uint32
    |     +-- operational-modes*            string
    |     +-- tx-tune-constraints
    |     |  +-- min-central-frequency?    frequency-thz
    |     |  +-- max-central-frequency?    frequency-thz
    |     |  +-- transceiver-tunability?   frequency-ghz
    |     +-- line-coding-bitrate*          identityref
    |     +-- tx-channel-power?             l0-types:power-dbm
    |     +-- preferred-rx-channel-power?   l0-types:power-dbm
    +-- path-out-transceiver
       +-- transponder-id?   uint32
       +-- transceivers* [lane-id]
          +-- lane-id                       uint8
          +-- transceiver-id?               uint32
          +-- operational-modes*            string
          +-- tx-tune-constraints
          |  +-- min-central-frequency?    frequency-thz
          |  +-- max-central-frequency?    frequency-thz
          |  +-- transceiver-tunability?   frequency-ghz
          +-- line-coding-bitrate*          identityref
          +-- tx-channel-power?             l0-types:power-dbm
          +-- preferred-rx-channel-power?   l0-types:power-dbm
  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
            /tepc:route-object-exclude-always/tepc:type
            /tepc:numbered-node-hop:
    +-- path-in-transceiver
    |  +-- transponder-id?   uint32
    |  +-- transceivers* [lane-id]
    |     +-- lane-id                       uint8
    |     +-- transceiver-id?               uint32
    |     +-- operational-modes*            string
    |     +-- tx-tune-constraints
    |     |  +-- min-central-frequency?    frequency-thz
    |     |  +-- max-central-frequency?    frequency-thz
    |     |  +-- transceiver-tunability?   frequency-ghz
    |     +-- line-coding-bitrate*          identityref
    |     +-- tx-channel-power?             l0-types:power-dbm
    |     +-- preferred-rx-channel-power?   l0-types:power-dbm
    +-- path-out-transceiver
       +-- transponder-id?   uint32
       +-- transceivers* [lane-id]
          +-- lane-id                       uint8
          +-- transceiver-id?               uint32
          +-- operational-modes*            string
          +-- tx-tune-constraints
          |  +-- min-central-frequency?    frequency-thz
          |  +-- max-central-frequency?    frequency-thz
          |  +-- transceiver-tunability?   frequency-ghz
          +-- line-coding-bitrate*          identityref
          +-- tx-channel-power?             l0-types:power-dbm
          +-- preferred-rx-channel-power?   l0-types:power-dbm
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects
            /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
            /tepc:route-object-include-exclude/tepc:type
            /tepc:numbered-node-hop:
    +-- path-in-transceiver
    |  +-- transponder-id?   uint32
    |  +-- transceivers* [lane-id]
    |     +-- lane-id                       uint8
    |     +-- transceiver-id?               uint32
    |     +-- operational-modes*            string
    |     +-- tx-tune-constraints
    |     |  +-- min-central-frequency?    frequency-thz
    |     |  +-- max-central-frequency?    frequency-thz
    |     |  +-- transceiver-tunability?   frequency-ghz
    |     +-- line-coding-bitrate*          identityref
    |     +-- tx-channel-power?             l0-types:power-dbm
    |     +-- preferred-rx-channel-power?   l0-types:power-dbm
    +-- path-out-transceiver
       +-- transponder-id?   uint32
       +-- transceivers* [lane-id]
          +-- lane-id                       uint8
          +-- transceiver-id?               uint32
          +-- operational-modes*            string
          +-- tx-tune-constraints
          |  +-- min-central-frequency?    frequency-thz
          |  +-- max-central-frequency?    frequency-thz
          |  +-- transceiver-tunability?   frequency-ghz
          +-- line-coding-bitrate*          identityref
          +-- tx-channel-power?             l0-types:power-dbm
          +-- preferred-rx-channel-power?   l0-types:power-dbm
  augment /te:tunnels-path-compute/te:input/te:path-compute-info
            /tepc:path-request/tepc:explicit-route-objects
            /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/tepc:numbered-node-hop:
    +-- path-in-transceiver
    |  +-- transponder-id?   uint32
    |  +-- transceivers* [lane-id]
    |     +-- lane-id                       uint8
    |     +-- transceiver-id?               uint32
    |     +-- operational-modes*            string
    |     +-- tx-tune-constraints
    |     |  +-- min-central-frequency?    frequency-thz
    |     |  +-- max-central-frequency?    frequency-thz
    |     |  +-- transceiver-tunability?   frequency-ghz
    |     +-- line-coding-bitrate*          identityref
    |     +-- tx-channel-power?             l0-types:power-dbm
    |     +-- preferred-rx-channel-power?   l0-types:power-dbm
    +-- path-out-transceiver
       +-- transponder-id?   uint32
       +-- transceivers* [lane-id]
          +-- lane-id                       uint8
          +-- transceiver-id?               uint32
          +-- operational-modes*            string
          +-- tx-tune-constraints
          |  +-- min-central-frequency?    frequency-thz
          |  +-- max-central-frequency?    frequency-thz
          |  +-- transceiver-tunability?   frequency-ghz
          +-- line-coding-bitrate*          identityref
          +-- tx-channel-power?             l0-types:power-dbm
          +-- preferred-rx-channel-power?   l0-types:power-dbm
  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:
    +--ro estimated-gsnr?          snr
    +--ro estimated-eol-gsnr?      snr
    +--ro estimated-lowest-gsnr?   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
            /tepc:path-route-objects/tepc:path-route-object/tepc:type
            /tepc:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [lane-id]
    |     +--ro lane-id                       uint8
    |     +--ro transceiver-id?               uint32
    |     +--ro operational-modes*            string
    |     +--ro tx-tune-constraints
    |     |  +--ro min-central-frequency?    frequency-thz
    |     |  +--ro max-central-frequency?    frequency-thz
    |     |  +--ro transceiver-tunability?   frequency-ghz
    |     +--ro line-coding-bitrate*          identityref
    |     +--ro tx-channel-power?             l0-types:power-dbm
    |     +--ro preferred-rx-channel-power?   l0-types:power-dbm
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id                       uint8
          +--ro transceiver-id?               uint32
          +--ro operational-modes*            string
          +--ro tx-tune-constraints
          |  +--ro min-central-frequency?    frequency-thz
          |  +--ro max-central-frequency?    frequency-thz
          |  +--ro transceiver-tunability?   frequency-ghz
          +--ro line-coding-bitrate*          identityref
          +--ro tx-channel-power?             l0-types:power-dbm
          +--ro preferred-rx-channel-power?   l0-types:power-dbm
  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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +-- (single-or-super-channel)?
                +--:(single)
                |  +-- flexi-n?              l0-types:flexi-n
                |  +-- flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x-- subcarrier-flexi-n* [flexi-n]
                |     +-- flexi-n    l0-types:flexi-n
                |     +-- flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +-- frequency-slots
                      +-- frequency-slot* [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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +-- (single-or-super-channel)?
                +--:(single)
                |  +-- flexi-n?              l0-types:flexi-n
                |  +-- flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x-- subcarrier-flexi-n* [flexi-n]
                |     +-- flexi-n    l0-types:flexi-n
                |     +-- flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +-- frequency-slots
                      +-- frequency-slot* [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
            /tepc:route-object-exclude-always/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +-- (single-or-super-channel)?
                +--:(single)
                |  +-- flexi-n?              l0-types:flexi-n
                |  +-- flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x-- subcarrier-flexi-n* [flexi-n]
                |     +-- flexi-n    l0-types:flexi-n
                |     +-- flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +-- frequency-slots
                      +-- frequency-slot* [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
            /tepc:route-object-include-exclude/tepc:type/tepc:label
            /tepc:label-hop/tepc:te-label/tepc:technology:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +-- (single-or-super-channel)?
                +--:(single)
                |  +-- flexi-n?              l0-types:flexi-n
                |  +-- flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x-- subcarrier-flexi-n* [flexi-n]
                |     +-- flexi-n    l0-types:flexi-n
                |     +-- flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +-- frequency-slots
                      +-- frequency-slot* [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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?    l0-types:cwdm-n
          +--:(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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?    l0-types:cwdm-n
          +--:(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:
    +--:(wdm)
       +-- (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +-- wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +-- wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x-- flexi-grid-channel-spacing?   identityref
             +-- flexi-ncfg?                   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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?    l0-types:cwdm-n
          +--:(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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?    l0-types:cwdm-n
          +--:(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:
    +--:(wdm)
       +-- (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +-- wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +-- wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x-- flexi-grid-channel-spacing?   identityref
             +-- flexi-ncfg?                   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:
    +--:(wdm)
       +-- (grid-type)?
          +--:(fixed-dwdm)
          |  +-- (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +-- dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +-- cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +-- (single-or-super-channel)?
                +--:(single)
                |  +-- flexi-n?              l0-types:flexi-n
                |  +-- flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x-- subcarrier-flexi-n* [flexi-n]
                |     +-- flexi-n    l0-types:flexi-n
                |     +-- flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +-- frequency-slots
                      +-- frequency-slot* [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:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
]]></artwork></figure>

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

<figure title="WDM path computation YANG module" anchor="fig-wdm-pc-yang"><sourcecode type="yang" markers="true" name="ietf-wdm-path-computation@2024-02-29.yang"><![CDATA[
module ietf-wdm-path-computation {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-wdm-path-computation";
  prefix "wdm-pc";

  import ietf-te-path-computation {
    prefix "tepc";
    reference 
      "I-D.ietf-teas-yang-path-computation-22: Yang model
      for requesting Path Computation.";
  }

  import ietf-te {
    prefix "te";
    reference
      "I-D.ietf-teas-yang-te-36: 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.";
  }

  import ietf-wdm-tunnel {
    prefix "wdm-tnl";
    reference
      "I-D.ietf-wdm-tunnel: A YANG Data Model for WDM Tunnels.";
  }

  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
    WDM 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 "2024-02-29" {
    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 tunnel attributes
   */
  augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
        + "tepc:tunnel-attributes" {
    description
       "Augment with WDM tunnel-specific constraints.";

    uses wdm-tnl:wdm-constraint;
  }

  /*
   * Augment path computation request
   */

  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:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  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/"
        + "tepc:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  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/"
        + "tepc:route-object-exclude-always/tepc:type/"
        + "tepc:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
        + "tepc:path-request/tepc:explicit-route-objects/"
        + "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/"
        + "tepc:route-object-include-exclude/tepc:type/"
        + "tepc:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  augment "/te:tunnels-path-compute/te:input/te:path-compute-info/"
        + "tepc:path-request/tepc:explicit-route-objects/"
        + "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/tepc:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  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 path computation response
   */

  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 WDM paths.";

    uses l0-types:l0-path-properties;
  }


  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:numbered-node-hop" {
    description
      "Augment with transceiver configurations.";
      
    uses wdm-tnl:path-transceiver-config;
  }

  //???
  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:wdm-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:wdm-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 wdm {
      uses l0-types:wdm-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 wdm {
      uses l0-types:wdm-label-hop;
    }
  }

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

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

</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-wdm-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-wdm-path-computation
  namespace: urn:ietf:params:xml:ns:yang:ietf-wson-path-computation
  prefix:    wdm-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-22'>
   <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='14' month='February' year='2024'/>
      <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-22'/>
   
</reference>

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

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

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


<reference anchor='I-D.ietf-ccamp-rfc9093-bis' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-rfc9093-bis-08'>
   <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='1' month='February' year='2024'/>
      <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-08'/>
   
</reference>


<reference anchor='I-D.ietf-teas-yang-te' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-te-36'>
   <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='2' month='February' year='2024'/>
      <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-36'/>
   
</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'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <author fullname='Y. Li' initials='Y.' surname='Li'/>
    <author fullname='F. Zhang' initials='F.' surname='Zhang'/>
    <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'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8040'/>
  <seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>

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

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

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

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




    </references>

    <references title='Informative References'>



<reference anchor='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'/>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='D. Li' initials='D.' surname='Li'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <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'/>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='D. Li' initials='D.' surname='Li'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <author fullname='J. Han' initials='J.' surname='Han'/>
    <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 "Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks" (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-11'>
   <front>
      <title>Applicability of Abstraction and Control of Traffic Engineered Networks (ACTN) to Packet Optical Integration (POI)</title>
      <author fullname='Fabio Peruzzini' initials='F.' surname='Peruzzini'>
         <organization>TIM</organization>
      </author>
      <author fullname='Jean-Francois Bouquier' initials='J.' surname='Bouquier'>
         <organization>Vodafone</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Daniel King' initials='D.' surname='King'>
         <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='Daniele Ceccarelli' initials='D.' surname='Ceccarelli'>
         <organization>Cisco</organization>
      </author>
      <date day='22' month='February' year='2024'/>
      <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-11'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-wson-tunnel-model' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-wson-tunnel-model-09'>
   <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='9' month='July' 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-09'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-flexigrid-tunnel-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-flexigrid-tunnel-yang-03'>
   <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='10' month='July' 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-03'/>
   
</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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
bTefQBs8OTtmRVoII3vsJ3D1FxhLYEuAlGIyK9EEA22qth88eMg2jwIVjtne
N9tUN7+FLiKFfYS2h1OGUQ61eJ+j/LDKOC/7Ln6bttmQ7mw10reNhfc8gLnL
ZNa6Q/BCFzwGF2VWVoQf8o5m6vjKhhkq8i0RVHg1A/1g53yq290ZkTUPhPXR
kVnsu3fP8I0Wc2LW84pqXvqCFmJezWCqq7cZkI/ps1t2HUynsIEWl7DaIb7f
YJoNYvsmgB69Ryb/Kdp3G0PIq+j1Ml9B9DxP5Czm0cgU2xMHKi8vqCQ1Mosj
Fotzbvx+kJzTkh0Au7jypSfgjmBdUvhAIBJkMmOIxyjgcXCBpuG8OwHRjYKp
TRIpGzX6gBOaNNEQhfbSW4peyiKrRHu/yAzmfc2Bl95PgZwIcIK/jnkygu//
FNhqE2x7yi/h61sgWkXsnxDMYx3AhR9B9r9wiY5P4msWvP+UCnzB8x6B/AG6
xv7J1Qi0ih2BSPgfMOQQUnBwB2+4ivD1AezHTCmuJNw5SQE9eymTP4LYAB8K
CbrsvQwGCmA4exnEAkWnBVz9NRjC8P1YlEiPBGT4GVAIWYcA/ZDEPO9wrLIL
dgjbiivmzcYSmc1N+Kay9yh/64O1DeIYsHDOa9gdd/sOZEQ7EHAFZDDAHR6o
WICgnDjsuYphFJ5csy2nJ28JSoFIa1pkBtNLmMwb2AxEYRlV52fcEto0x1do
oHadQ2SI5AzM4P8Br/2Oc//CAAA=

-->

</rfc>

