<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ybb-ccamp-service-path-computation-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Service Path Computation">A YANG Data Model for Service Path Computation</title>
    <seriesInfo name="Internet-Draft" value="draft-ybb-ccamp-service-path-computation-03"/>
    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <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="D." surname="Beller" fullname="Dieter Beller">
      <organization>Nokia</organization>
      <address>
        <email>dieter.beller@nokia.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="07"/>
    <area>Routing</area>
    <workgroup>Common Control and Measurement Plane</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 53?>

<t>This document defines a YANG data model for client signal service's path computation and path management.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://YuChaode.github.io/draft-ybb-ccamp-service-path-computation/draft-ybb-ccamp-service-path-computation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ybb-ccamp-service-path-computation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Common Control and Measurement Plane Working Group mailing list (<eref target="mailto:ccamp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccamp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccamp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/YuChaode/draft-ybb-ccamp-service-path-computation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>For transport technology, the service's path is hierarchical, including OTN-layer trails and WDM-layer trails. According to the funcational structure defined by ITU-T, the OTN-layer trails include lower-order ODUk, high-order ODUk and OTUk trails. The WDM-lay trails include OTS, OMS and OCh trail. These trails and the configuration of client-side port configuration form an end-to-end client signal service.</t>
      <t>Path computation is a common network management funcation. For traditional transport services, OTS and OMS trails are automatically generated once the fibers are connected and they don't require any path computation. The path computation is performed on the OCh layer trails and above. Traditionally, the path computation is performed from OCh to low-order ODUk trail layer by layer. This is called bottom-up approach.</t>
      <t>One disavantage of bottom-up approach is that the client and server need to interact with each other multiple times. And sometimes, the client layer trail cannot be computed until the server layer trail is setup. This doea not comply with the intention of path computation which will not introduce actual configuration on the network.</t>
      <t>In addition, the client prefers to transfer intent-based configuration instead of complex network configuration to achieve path computation and obtain all the layers' path computation result at one time. The server, usually it is played by the domain controller, can help to deal with the complex network configuration computation. This is called top-down approach.</t>
      <t>This document focuses on the top-down path computation for transparent client signal service and non-transparent client signal service (Ethernet service).</t>
      <t>We also focus on addressing some undiscussed requirements, such as how to ultize a generic structure to display path information for all the layers' path at once, and how to specify some parameters on the server layer's trail in the service path computation request, and how to support more complex path constraints, and how to manage the path computation results and how to reference them in service provisioning request.</t>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not
  redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The 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="spp-tree"/> of this document.
The meaning of the symbols in this diagram 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 the following table.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Yang Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">clnt-svc</td>
              <td align="left">ietf-trans-client-service</td>
              <td align="left">[RFCYYYY]</td>
            </tr>
            <tr>
              <td align="left">clnt-svc-pc</td>
              <td align="left">ietf-trans-client-path-computation</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>RFC Editor Note:
Please replace XXXX with the number assigned to the RFC once this draft becomes an RFC.
Please replace YYYY with the RFC numbers assigned to <xref target="I-D.ietf-ccamp-client-signal-yang"/>.
Please remove this note.</t>
      </section>
    </section>
    <section anchor="end-to-end-management-of-transport-network-client-signal-service">
      <name>End to End Management of Transport Network Client Signal Service</name>
      <t>The hierarchical relationship of transport client signal service can reference to <xref target="fig-rel-service-tunnel"/>:
(Please note that, the OTN tunnels in this figure and subsequent figures include lower order OTN tunnels, higher order OTN tunnels, and OTU tunnels. The supporting relationship should comply with ITU-T G.XXXX definition. WDM tunnel also include the WDM, flexi-grid scenario and Media channel scenario. The hierarchical relationship should comply with ITU-T G.XXXX definition.)</t>
      <figure anchor="fig-rel-service-tunnel">
        <name>Transparent Client Signal Service and its Server tunnel</name>
        <artwork type="ascii-art"><![CDATA[
|<----------Transparent client signal---------->|
     |<--------------OTN Tunnel---------->|
       |<------------WDM Tunnel-------->|
]]></artwork>
      </figure>
      <t>For Ethernet client signal service, the client signal can be encapsulated into multiple approach. For example, it can be encapsulated into OTN tunnel directly, or it can be encapsulated into MPLS-TP/SDH tunnels and then into OTN tunnels. Note that the SDH tunnel is considered as an outdated technology and lacks standardization. Therefore, the scenario where Ethernet client signals are encapsulated into the SDH tunnel is not described in this document.
The <xref target="fig-rel-eth-service-tunnel"/> shows the hierarchical relationship of Ethernet service:</t>
      <figure anchor="fig-rel-eth-service-tunnel">
        <name>Ethernet Client Signal Service and its Server tunnel</name>
        <artwork type="ascii-art"><![CDATA[
|<----------Ethernet client signal---------->|
   |<----MPLS-TP Tunnel (Optional) ----->|
    |<-----------OTN Tunnel----------->|
      |<---------WDM Tunnel--------->|
]]></artwork>
      </figure>
      <t>The reference method is defined in the <xref target="I-D.ietf-ccamp-client-signal-yang"/>. The supporting relationship between the tunnels can be also found by the dependency-tunnel structure define by the <xref target="I-D.ietf-teas-yang-te"/>.</t>
    </section>
    <section anchor="requirements-for-service-path-computation">
      <name>Requirements for Service Path Computation</name>
      <section anchor="top-down-approach">
        <name>Top-down Approach</name>
        <t>For the Top-down approach, the path computation request should be based on client signal service. It is needed to specify the source and destination access port of in the request. In addition, some common parameters, such as number of path to be calculated, protection and restoration capabities, path computation policy and path constraint (see <xref target="path-constraint"/>).etc. And then the domain controller will trigger the computation on all the layers. The path computation result should contain all the layers' path information.
For the OTN tunnel and WDM tunnel in the service path computation result, they can be non-existing before service path compuation and can be totally designed by the domain controller or control plane. The tunnels can also be existing before the service computation request. The domain controller can design to reuse some existing tunnels based on the consideration of maximum resource utilization.
Similar to TE tunnel path computation, service path computation should not create any tunnels on the network during the whole computation process, and will not introduce any other changes on the network.</t>
        <artwork type="ascii-art"><![CDATA[
module: ietf-trans-client-service-path-computation
rpcs:
   +---x client-service-precompute
      +--ro input
      |  +--ro request* [request-id]
      |     +--ro request-id                        string
      |     +--ro path-count?                       uint8
      |     +--ro te-topology-identifier
      |     +--ro src-access-ports
      |     +--ro dst-access-ports
      |     +--ro tunnel-policy
      |     |  +--ro protection
      |     |  +--ro restoration
      |     |  +--ro optimizations
      |     +--ro explicit-route-exclude-objects
      |     |  +--ro route-object-exclude-object* [index]
      |     +--ro explicit-route-include-objects
      |        +--ro route-object-include-object* [index]
      +--ro output
         +--ro result* [request-id]
            +--ro request-id                string
            +--ro result-code?              enumeration
            +--ro (result-detail)?
               +--:(failure)
               |  +--ro failure-reason?           uint32
               |  +--ro error-message?            string
               +--:(success)
                  +--ro computed-paths* [path-id]
                  |  +--ro path-id        yang:uuid
                  |  +--ro path-number?   uint8
                  +--ro te-topology-identifier
                  +--ro src-access-ports
                  +--ro dst-access-ports
                  +--ro underlay-tunnels
                     +--ro underlay-tunnel* [index]
                        +--ro index                     uint8
                        +--ro tunnel-name?              leafref
                        +--ro te-topology-identifier
                        +--ro computed-lsp* [lsp-id]
                           +--ro lsp-id               uint8
                           +--ro lsp-type?            enumeration
                           +--ro lsp-metrics
                           |  +--ro lsp-metric* [metric-type]
                           +--ro lsp-route-objects* [index]
]]></artwork>
      </section>
      <section anchor="multi-layer-path-display">
        <name>Multi-layer Path Display</name>
        <t>For the MDSC, if it wants to show the whole information of computed path, the path computation result provided by the domain controller must contain tunnels at all the layers. The number of these tunnels is not fixed. For example, for OTN tunnel, the client signal can be encapsulated into a low order OTN tunnel at first, and then be multiplexed into a higher OTN tunnel. The client signal can be encapsulated into a high order OTN tunnel directly without the multiplexing scenario. There is another common scenario that an OTN tunnel is supported by multiple WDM tunnels.
This document provides a generic structure in a list to present the actual path information regardless which layer it is. The tunnels will be ordered by index from 0 for the topmost tunnel. The correlation with server tunnel will be provided by the "server-tunnel" attribute in the LSP hop.</t>
        <artwork type="ascii-art"><![CDATA[
............................
+--ro underlay-tunnels
   +--ro underlay-tunnel* [index]
      +--ro index                     uint8
      +--ro tunnel-name?              leafref
      +--ro te-topology-identifier
      |  +--ro provider-id?   te-types:te-global-id
      |  +--ro client-id?     te-types:te-global-id
      |  +--ro topology-id?   te-types:te-topology-id
      +--ro computed-lsp* [lsp-id]
         +--ro lsp-id               uint8
         +--ro lsp-type?            enumeration
         +--ro lsp-metrics
         |  +--ro lsp-metric* [metric-type]
         |     +--ro metric-type     identityref
         |     +--ro metric-value?   uint32
         |     +--ro metric-unit?    string
         +--ro lsp-route-objects* [index]
            +--ro index            uint8
            +--ro node-id?         te-types:te-node-id
            +--ro node-uri-id?     yang:uuid
            +--ro link-tp-id?      te-types:te-tp-id
            +--ro ltp-uri-id?      yang:uuid
            +--ro te-label
            |  +--ro (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
            |  |  +--:(otn)
            |  |     +--ro otn
            |  |        +--ro tpn?       otn-tpn
            |  |        +--ro tsg?       identityref
            |  |        +--ro ts-list?   string
            |  +--ro direction?           te-types:te-label-direction
            +--ro server-tunnel?   leafref

]]></artwork>
      </section>
      <section anchor="path-constraint">
        <name>Path Constraint</name>
        <t>It is common for service path computation request to specify path constrain like node/link-tp inclusion/exclusion like TE tunnel path computation. And service path computation needs to support some more kind of path constraint, such as to specify service/tunnel/path included/excluded. There are also scenarios to specify path constrain across layers. For example, some people would like to specify a WDM node included/excluded or wavelength in the service path computation.</t>
        <artwork type="ascii-art"><![CDATA[
................................
+--ro route-object-include-object* [index]
   +--ro index                 uint8
   +--ro node-id?              te-types:te-node-id
   +--ro node-uri-id?          yang:uuid
   +--ro link-tp-id?           te-types:te-tp-id
   +--ro ltp-uri-id?           yang:uuid
   +--ro te-label
   |  +--ro (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
   |  |  +--:(otn)
   |  |     +--ro otn
   |  |        +--ro tpn?       otn-tpn
   |  |        +--ro tsg?       identityref
   |  |        +--ro ts-list?   string
   |  +--ro direction?           te-types:te-label-direction
   +--ro server-tunnel-name?   leafref
   +--ro lsp-type?             enumeration
]]></artwork>
      </section>
      <section anchor="path-management">
        <name>Path Management</name>
        <t>### Storage of Path Computation Result
It is useful to save the path computation results after they are return. Sometimes, people from operators will make the decision on the results in a short time. If the path is not saved in the domain controller, the MDSC needs to send the full path in the service creation request which is complex. So in this document, we recommend that the domain controller should be capable of saving path computation results to make it possible that the MDSC can reference the path computation result in service creation request.
The path information in the path management structure should be same with the output of service path computation RPC. Once there is a RPC succeed in operating, the path management structure will add one more item.
It is noted that the path computation result is not required to be saved forever in the domain controller. How long could it be saved is implementation-specific. But if the path has been adopted by a service creation request, including path inclusion/exclusion, the path can not be deleted from data store.</t>
        <t>Note: the service path computation request is defined as an RPC, which is stateless. According to the requirement of RESTCONF, RPC should not generate any impact on the data model. So it is recommended to discuss with RESTCONF protocol expert to find a workaround solution.</t>
        <artwork type="ascii-art"><![CDATA[
module: ietf-trans-client-service-path-computation
   +--rw path-management
      +--rw path* [path-id]
         +--rw path-id             yang:uuid
         +--rw creation-time?      yang:date-and-time
         +--rw validity-period?    uint8
         +--rw underlay-tunnels
            +--rw underlay-tunnel* [index]
               +--rw index                     uint8
               +--rw tunnel-name?              leafref
               +--rw te-topology-identifier
               |  +--rw provider-id?   te-types:te-global-id
               |  +--rw client-id?     te-types:te-global-id
               |  +--rw topology-id?   te-types:te-topology-id
               +--rw computed-lsp* [lsp-id]
                  +--rw lsp-id               uint8
                  +--rw lsp-type?            enumeration
                  +--rw lsp-metrics
                  |  +--rw lsp-metric* [metric-type]
                  |     +--rw metric-type     identityref
                  |     +--rw metric-value?   uint32
                  |     +--rw metric-unit?    string
                  +--rw lsp-route-objects* [index]
                     +--rw index            uint8
                     +--rw node-id?         te-types:te-node-id
                     +--rw node-uri-id?     yang:uuid
                     +--rw link-tp-id?      te-types:te-tp-id
                     +--rw ltp-uri-id?      yang:uuid
                     +--rw te-label
                     |  +--rw (technology)?
                     |  |  +--:(wson)
                     |  |  |  +--rw (grid-type)?
                     |  |  |     +--:(dwdm)
                     |  |  |     |  +--rw (single-or-super-channel)?
                     |  |  |     |     +--:(single)
                     |  |  |     |     |  +--rw dwdm-n?
                     l0-types:dwdm-n
                     |  |  |     |     +--:(super)
                     |  |  |     |        +--rw subcarrier-dwdm-n*
                     l0-types:dwdm-n
                     |  |  |     +--:(cwdm)
                     |  |  |        +--rw cwdm-n?
                     l0-types:cwdm-n
                     |  |  +--:(otn)
                     |  |     +--rw otn
                     |  |        +--rw tpn?       otn-tpn
                     |  |        +--rw tsg?       identityref
                     |  |        +--rw ts-list?   string
                     |  +--rw direction?
                     te-types:te-label-direction
                     +--rw server-tunnel?   leafref
]]></artwork>
        <section anchor="path-reference-in-service-provisioning">
          <name>Path Reference in Service Provisioning</name>
          <t>In the current service provisioning approach, the MDSC needs to specify the correlation of tunnel underlay. If the path computation result is saved in the domain controller. It is much easier to reference the path computation result instead of specifying tunnel underlay to do the provisioning.</t>
          <artwork type="ascii-art"><![CDATA[
To be added
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="spp-tree">
      <name>Tree Diagram for Service Path Computation</name>
      <figure anchor="fig-spc-tree">
        <name>Service path computation tree diagram</name>
        <artwork type="ascii-art" name="ietf-trans-client-service-path-computation.tree"><![CDATA[
module: ietf-trans-client-service-path-computation
  +--rw path-management
     +--rw path* [path-id]
        +--rw path-id             yang:uuid
        +--rw creation-time?      yang:date-and-time
        +--rw validity-period?    uint8
        +--rw underlay-tunnels
           +--rw underlay-tunnel* [index]
              +--rw index                     uint8
              +--rw tunnel-name?
              |       -> /te:te/tunnels/tunnel/name
              +--rw te-topology-identifier
              |  +--rw provider-id?   te-global-id
              |  +--rw client-id?     te-global-id
              |  +--rw topology-id?   te-topology-id
              +--rw computed-lsp* [lsp-id]
                 +--rw lsp-id               uint8
                 +--rw lsp-type?            enumeration
                 +--rw lsp-metrics
                 |  +--rw lsp-metric* [metric-type]
                 |     +--rw metric-type     identityref
                 |     +--rw metric-value?   uint32
                 |     +--rw metric-unit?    string
                 +--rw lsp-route-objects* [index]
                    +--rw index            uint8
                    +--rw node-id?         te-types:te-node-id
                    +--rw node-uri-id?     yang:uuid
                    +--rw link-tp-id?      te-types:te-tp-id
                    +--rw ltp-uri-id?      yang:uuid
                    +--rw te-label
                    |  +--rw (technology)?
                    |  |  +--:(wson)
                    |  |  |  +--rw (grid-type)?
                    |  |  |     +--:(dwdm)
                    |  |  |     |  +--rw (single-or-super-channel)?
                    |  |  |     |     +--:(single)
                    |  |  |     |     |  +--rw dwdm-n?
                    |  |  |     |     |          l0-types:dwdm-n
                    |  |  |     |     +--:(super)
                    |  |  |     |        +--rw subcarrier-dwdm-n*
                    |  |  |     |                l0-types:dwdm-n
                    |  |  |     +--:(cwdm)
                    |  |  |        +--rw cwdm-n?
                    |  |  |                l0-types:cwdm-n
                    |  |  +--:(otn)
                    |  |     +--rw otn-label
                    |  |        +--rw tpn?       otn-tpn
                    |  |        +--rw tsg?       identityref
                    |  |        +--rw ts-list?   string
                    |  +--rw direction?
                    |          te-types:te-label-direction
                    +--rw server-tunnel?   -> ../../../index

  rpcs:
    +---x client-service-precompute
       +---w input
       |  +---w request* [request-id]
       |     +---w request-id                        string
       |     +---w path-count?                       uint8
       |     +---w te-topology-identifier
       |     |  +---w provider-id?   te-global-id
       |     |  +---w client-id?     te-global-id
       |     |  +---w topology-id?   te-topology-id
       |     +---w src-access-ports
       |     |  +---w access-node-id?    te-types:te-node-id
       |     |  +---w access-node-uri?   nw:node-id
       |     |  +---w access-ltp-id?     te-types:te-tp-id
       |     |  +---w access-ltp-uri?    nt:tp-id
       |     |  +---w client-signal?     identityref
       |     +---w dst-access-ports
       |     |  +---w access-node-id?    te-types:te-node-id
       |     |  +---w access-node-uri?   nw:node-id
       |     |  +---w access-ltp-id?     te-types:te-tp-id
       |     |  +---w access-ltp-uri?    nt:tp-id
       |     |  +---w client-signal?     identityref
       |     +---w tunnel-policy
       |     |  +---w protection
       |     |  |  +---w protection-type?                identityref
       |     |  |  +---w protection-reversion-disable?   boolean
       |     |  |  +---w hold-off-time?                  uint32
       |     |  |  +---w wait-to-revert?                 uint16
       |     |  |  +---w aps-signal-id?                  uint8
       |     |  +---w restoration
       |     |  |  +---w restoration-type?                identityref
       |     |  |  +---w restoration-scheme?              identityref
       |     |  |  +---w restoration-reversion-disable?   boolean
       |     |  |  +---w hold-off-time?                   uint32
       |     |  |  +---w wait-to-restore?                 uint16
       |     |  |  +---w wait-to-revert?                  uint16
       |     |  +---w share-timeslot?   boolean
       |     |  +---w optimizations
       |     |     +---w (algorithm)?
       |     |     |  +--:(metric)
       |     |     |     +---w optimization-metric* [metric-type]
       |     |     |        +---w metric-type    identityref
       |     |     |        +---w weight?        uint8
       |     |     +---w lsp-type?                    enumeration
       |     |     +---w path-metric-bounds
       |     |        +---w path-metric-bound* [metric-type]
       |     |           +---w metric-type    identityref
       |     |           +---w upper-bound?   uint64
       |     +---w explicit-route-exclude-objects
       |     |  +---w route-object-exclude-object* [index]
       |     |     +---w index                 uint8
       |     |     +---w node-id?              te-types:te-node-id
       |     |     +---w node-uri-id?          yang:uuid
       |     |     +---w link-tp-id?           te-types:te-tp-id
       |     |     +---w ltp-uri-id?           yang:uuid
       |     |     +---w te-label
       |     |     |  +---w (technology)?
       |     |     |  |  +--:(wson)
       |     |     |  |  |  +---w (grid-type)?
       |     |     |  |  |     +--:(dwdm)
       |     |     |  |  |     |  +---w (single-or-super-channel)?
       |     |     |  |  |     |     +--:(single)
       |     |     |  |  |     |     |  +---w dwdm-n?
       |     |     |  |  |     |     |          l0-types:dwdm-n
       |     |     |  |  |     |     +--:(super)
       |     |     |  |  |     |        +---w subcarrier-dwdm-n*
       |     |     |  |  |     |                l0-types:dwdm-n
       |     |     |  |  |     +--:(cwdm)
       |     |     |  |  |        +---w cwdm-n?
       |     |     |  |  |                l0-types:cwdm-n
       |     |     |  |  +--:(otn)
       |     |     |  |     +---w otn-label
       |     |     |  |        +---w tpn?       otn-tpn
       |     |     |  |        +---w tsg?       identityref
       |     |     |  |        +---w ts-list?   string
       |     |     |  +---w direction?
       |     |     |          te-types:te-label-direction
       |     |     +---w server-tunnel-name?
       |     |     |       -> /te:te/tunnels/tunnel/name
       |     |     +---w lsp-type?             enumeration
       |     +---w explicit-route-include-objects
       |        +---w route-object-include-object* [index]
       |           +---w index                 uint8
       |           +---w node-id?              te-types:te-node-id
       |           +---w node-uri-id?          yang:uuid
       |           +---w link-tp-id?           te-types:te-tp-id
       |           +---w ltp-uri-id?           yang:uuid
       |           +---w te-label
       |           |  +---w (technology)?
       |           |  |  +--:(wson)
       |           |  |  |  +---w (grid-type)?
       |           |  |  |     +--:(dwdm)
       |           |  |  |     |  +---w (single-or-super-channel)?
       |           |  |  |     |     +--:(single)
       |           |  |  |     |     |  +---w dwdm-n?
       |           |  |  |     |     |          l0-types:dwdm-n
       |           |  |  |     |     +--:(super)
       |           |  |  |     |        +---w subcarrier-dwdm-n*
       |           |  |  |     |                l0-types:dwdm-n
       |           |  |  |     +--:(cwdm)
       |           |  |  |        +---w cwdm-n?
       |           |  |  |                l0-types:cwdm-n
       |           |  |  +--:(otn)
       |           |  |     +---w otn-label
       |           |  |        +---w tpn?       otn-tpn
       |           |  |        +---w tsg?       identityref
       |           |  |        +---w ts-list?   string
       |           |  +---w direction?
       |           |          te-types:te-label-direction
       |           +---w server-tunnel-name?
       |           |       -> /te:te/tunnels/tunnel/name
       |           +---w lsp-type?             enumeration
       +--ro output
          +--ro result* [request-id]
             +--ro request-id                      string
             +--ro result-code?                    enumeration
             +--ro (result-detail)?
                +--:(failure)
                |  +--ro failure-reason?           uint32
                |  +--ro error-message?            string
                +--:(success)
                   +--ro computed-paths* [path-id]
                   |  +--ro path-id        yang:uuid
                   |  +--ro path-number?   uint8
                   +--ro te-topology-identifier
                   |  +--ro provider-id?   te-global-id
                   |  +--ro client-id?     te-global-id
                   |  +--ro topology-id?   te-topology-id
                   +--ro src-access-ports
                   |  +--ro access-node-id?    te-types:te-node-id
                   |  +--ro access-node-uri?   nw:node-id
                   |  +--ro access-ltp-id?     te-types:te-tp-id
                   |  +--ro access-ltp-uri?    nt:tp-id
                   |  +--ro client-signal?     identityref
                   +--ro dst-access-ports
                   |  +--ro access-node-id?    te-types:te-node-id
                   |  +--ro access-node-uri?   nw:node-id
                   |  +--ro access-ltp-id?     te-types:te-tp-id
                   |  +--ro access-ltp-uri?    nt:tp-id
                   |  +--ro client-signal?     identityref
                   +--ro underlay-tunnels
                      +--ro underlay-tunnel* [index]
                         +--ro index                     uint8
                         +--ro tunnel-name?
                         |       -> /te:te/tunnels/tunnel/name
                         +--ro te-topology-identifier
                         |  +--ro provider-id?   te-global-id
                         |  +--ro client-id?     te-global-id
                         |  +--ro topology-id?   te-topology-id
                         +--ro computed-lsp* [lsp-id]
                            +--ro lsp-id               uint8
                            +--ro lsp-type?            enumeration
                            +--ro lsp-metrics
                            |  +--ro lsp-metric* [metric-type]
                            |     +--ro metric-type     identityref
                            |     +--ro metric-value?   uint32
                            |     +--ro metric-unit?    string
                            +--ro lsp-route-objects* [index]
                               +--ro index            uint8
                               +--ro node-id?
                               |       te-types:te-node-id
                               +--ro node-uri-id?     yang:uuid
                               +--ro link-tp-id?
                               |       te-types:te-tp-id
                               +--ro ltp-uri-id?      yang:uuid
                               +--ro te-label
                               |  +--ro (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
                               |  |  +--:(otn)
                               |  |     +--ro otn-label
                               |  |        +--ro tpn?       otn-tpn
                               |  |        +--ro tsg?
                               |  |        |       identityref
                               |  |        +--ro ts-list?   string
                               |  +--ro direction?
                               |          te-types:te-label-direction
                               +--ro server-tunnel?
                                       -> ../../../index
]]></artwork>
      </figure>
    </section>
    <section anchor="yang-data-model-for-service-path-computation">
      <name>YANG Data Model for Service Path Computation</name>
      <figure anchor="fig-rpm-yang">
        <name>Service Path Computation YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-trans-client-service-path-computation@2024-07-07.yang"><![CDATA[
 module ietf-trans-client-service-path-computation {
   /* TODO: FIXME */
     yang-version 1.1;

   namespace "urn:ietf:params:xml:ns:yang:ietf-trans-client-service-path-computation";
   prefix "clntsvc-cpt";

   import ietf-trans-client-service {
     prefix "clntsvc";
     reference "draft-ietf-ccamp-client-signal-yang";
   }

   import ietf-te-types {
     prefix "te-types";
     reference "RFC 8776 - Traffic Engineering Common YANG Types";
   }

   import ietf-yang-types {
     prefix "yang";
     reference "RFC 6991 - Common YANG Data Types";
   }
  
  import ietf-layer1-types {
    prefix l1-types;
    reference "RFC ZZZZ - A YANG Data Model for Layer 1 Types";
  }
  
  import ietf-layer0-types {
    prefix l0-types;
  }
  
  import ietf-te {
    prefix "te";
  }

   organization
     "Internet Engineering Task Force (IETF) CCAMP WG";
   contact
     "
       ID-draft editor:
         Chaode Yu (yuchaode@huawei.com);
         Sergio Belotti (sergio.belotti@nokia.com);
         Italo Busi (italo.busi@huawei.com);
         Aihua Guo (aihuaguo.ietf@gmail.com);         
         Dieter Beller (dieter.beller@nokia.com);         
     ";

   description
     "This module defines a YANG data model for describing
      transport network client services. The model fully conforms
      to the Network Management Datastore Architecture (NMDA).

      Copyright (c) 2021 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 Simplified 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-07-07 {
     description
       "initial version";
     reference
       "draft-ybb-ccamp-service-path-computation";
   }

   
  container path-management {
    list path {
      key path-id;
      
      leaf path-id {
        type yang:uuid;      
      }
      
      leaf creation-time {
        type yang:date-and-time;
      }
      
      leaf validity-period {
        type uint8;
        units "minute";
      }
      
      container underlay-tunnels {
        list underlay-tunnel {
          key index;
          
          leaf index {
            description 
              "The tunnels underlay should be ordered by  their 
              supproting relationship. The client layer tunnels
              should use smaller index.";
              type uint8;
          }
          
          leaf tunnel-name {
            type leafref {
              path "/te:te/te:tunnels/te:tunnel/te:name";
            }
                  
            description 
              "the computed result can route with some existing
              TE tunnels. The tunnel-name is the identifier of 
              tunnel. If the tunnel is not created, this 
              parameter is not needed to provide.";
          }
          
          uses te-types:te-topology-identifier;
                
          list computed-lsp {
            key lsp-id;      
            leaf lsp-id {
              type uint8;
            }
                  
            leaf lsp-type {
              type enumeration {
                enum forwarding-working;
                enum forwarding-protection;
                enum reverse-working;
                enum reverse-protection;
              }
            }
                  
            container lsp-metrics {
              list lsp-metric {
                key metric-type;
                      
                leaf metric-type {
                  type identityref {
                    base te-types:path-metric-type;
                  }
                }
                      
                leaf metric-value {
                  type uint32;
                }
                      
                leaf metric-unit {
                  type string;
                }
              }
            }
            
            list lsp-route-objects {
              key index;
              
              leaf index {
                type uint8;
              }
              
              uses hop-infomation;
              
              leaf server-tunnel {
                type leafref {
                  path "../../../index";
                }
              }
            }  
          }
        }
      }
    }
  }
   
 
  rpc client-service-precompute {
    input {
      list request {
        key "request-id";

        leaf request-id {
          type string;
        }

        leaf path-count {
          type uint8 {
            range "1..10";
          }
        }

        uses te-types:te-topology-identifier;

        container src-access-ports {
          description
            "Source access port of a client service.";
          uses clntsvc:client-svc-access-parameters;
        }

        container dst-access-ports {
          description
                "Destination access port of a client service.";
          uses clntsvc:client-svc-access-parameters;
        }

        uses tunnel-policy-grouping;
        uses path-constraints;
      }
    }
    output {
      list result {
        key "request-id";

        leaf request-id {
          type string;
        }

        leaf result-code {
          type enumeration {
            enum success {
            }
            enum failure {
            }
          }
        }
        choice result-detail {
          case failure {
            uses failure-info-grouping;
          }
          
          

          case success {
            list computed-paths {
              key path-id;
              
              leaf path-id {
                type yang:uuid;
              }
              
              leaf path-number {
                type uint8;
                description
                  "when the client requestes to compute multiple paths
                   for a service, this path-number can be used to rank
                   the path result, based on the path computation 
                   policy. The path-number starts with 0 and 0 
                   indicates the best option. The better path's 
                   path-number should be in lower number.";
              }            
            }
            
            uses te-types:te-topology-identifier;
            container src-access-ports {
              description
                "Source access port of a client service.";
              uses clntsvc:client-svc-access-parameters;
            }

            container dst-access-ports {
              description
                    "Destination access port of a client service.";
              uses clntsvc:client-svc-access-parameters;
            }

            container underlay-tunnels {
              list underlay-tunnel {
                key index;
              
                description 
                  "The server could support all the layers of tunnels
                  under the client signal service. If it cannot 
                  support that, it should return its topmost layer
                  tunnel's path infomation";
                   
                leaf index {
                  description 
                    "The tunnels underlay should be ordered by  their 
                    supproting relationship. The client layer tunnels
                    should use smaller index.";
                  type uint8;
                }
                
                leaf tunnel-name {
                  type leafref {
                    path "/te:te/te:tunnels/te:tunnel/te:name";
                  }
                  
                  description 
                    "the computed result can route with some existing
                    TE tunnels. The tunnel-name is the identifier of 
                    tunnel. If the tunnel is not created, this 
                    parameter is not needed to provide.";
                }
                
                uses te-types:te-topology-identifier;
                
                list computed-lsp {
                  key lsp-id;
                  
                  leaf lsp-id {
                    type uint8;
                  }
                  
                  leaf lsp-type {
                    type enumeration {
                      enum forwarding-working;
                      enum forwarding-protection;
                      enum reverse-working;
                      enum reverse-protection;
                    }
                  }
                  
                  container lsp-metrics {
                    list lsp-metric {
                      key metric-type;
                      
                      leaf metric-type {
                        type identityref {
                          base te-types:path-metric-type;
                        }
                      }
                      
                      leaf metric-value {
                        type uint32;
                      }
                      
                      leaf metric-unit {
                        type string;
                      }
                    }
                  }
                  
                  list lsp-route-objects {
                    key index;
                    
                    leaf index {
                      type uint8;
                    }
                    
                    uses hop-infomation;
                    
                    leaf server-tunnel {
                      type leafref {
                        path "../../../index";
                      }
                    }
                  }
                }
                
              }
            }
          }
        }
      }
    }
  } 

  grouping hop-infomation {
    leaf node-id {
        type te-types:te-node-id;
        description
          "The identifier of a node in the TE topology.";
      }

      leaf node-uri-id {
        type yang:uuid;
        description
          "Another identifier of TE node. This uuid of node may be acquired by inventory.";
      }

      leaf link-tp-id {
        type te-types:te-tp-id;
          description
            "TE link termination point identifier, used
             together with te-node-id to identify the
             link termination point";
      }

      leaf ltp-uri-id {
        type yang:uuid;
        description
          "another identifier of link TP. This uuid of TP may be acquired by inventory.";
      }
  
      container te-label {
        description
          "Container that specifies TE label.";
        choice technology {
          description
            "Data plane technology type.";
          case wson {
            uses l0-types:wson-label-hop;
          }
          
          case otn {
            uses l1-types:otn-label-hop;
          }
        }
        leaf direction {
          type te-types:te-label-direction;
          description "Label direction";
        }
      }
      
  }

  grouping tunnel-policy-grouping {
    description "Tunnel creation policy which can be also inherited by client service.";
    container tunnel-policy {
      uses te:protection-restoration-properties;
      
      leaf share-timeslot {
        type boolean;
      }
      
      uses path-policy;
    }
  }

  grouping failure-info-grouping {
    leaf failure-reason {
      type uint32;
    }
    leaf error-message {
      type string;
    }
  }

  grouping path-constraints {
    description "";
    
    container explicit-route-exclude-objects {
      list route-object-exclude-object {
        key index;
        uses hop-include-or-exclude-grouping;
      }
    }
    
    container explicit-route-include-objects {
      list route-object-include-object {
        key index;
        uses hop-include-or-exclude-grouping;
      }
    }
  }
  
  grouping hop-include-or-exclude-grouping {
    leaf index {
      type uint8;
    }
      
    uses hop-infomation;
    leaf server-tunnel-name {
      type leafref {
        path "/te:te/te:tunnels/te:tunnel/te:name";
      }
    }
        
    leaf lsp-type {
      type enumeration {
        enum all-paths;
        enum forwarding-working;
        enum forwarding-protection;
        enum reverse-working;
        enum reverse-protection;
      }
    }
  }
  
  grouping path-policy {
    container optimizations {
      choice algorithm {
        case metric {
          list optimization-metric {
            key "metric-type";
            leaf metric-type {
              type identityref {
                base te-types:path-metric-type;
              }
              description "TE path metric type";
            }
            leaf weight {
              type uint8;
              description "TE path metric normalization weight";
            }
          }
        }
      }
      
      leaf lsp-type {
        type enumeration {
          enum all-paths;
          enum forwarding-working;
          enum forwarding-protection;
          enum reverse-working;
          enum reverse-protection;
        }
      }
    
      uses te-types:generic-path-metric-bounds;
    }
  }
 }
]]></sourcecode>
      </figure>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC7950">
        <front>
          <title>The YANG 1.1 Data Modeling Language</title>
          <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
          <date month="August" year="2016"/>
          <abstract>
            <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7950"/>
        <seriesInfo name="DOI" value="10.17487/RFC7950"/>
      </reference>
      <reference anchor="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-client-signal-yang">
        <front>
          <title>A YANG Data Model for Transport Network Client Signals</title>
          <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="Italo Busi" initials="I." surname="Busi">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Anton Snitser" initials="A." surname="Snitser">
            <organization>Cisco</organization>
          </author>
          <author fullname="Chaode Yu" initials="C." surname="Yu">
            <organization>Huawei Technologies</organization>
          </author>
          <date day="28" month="July" year="2025"/>
          <abstract>
            <t>   A transport network is a server-layer network to provide connectivity
   services to its client.  The topology and tunnel information in the
   transport layer has already been defined by generic Traffic-
   engineered models and technology-specific models (e.g., OTN, WSON).
   However, how the client signals are accessing to the network has not
   been described.  These information is necessary to both client and
   provider.

   This draft describes how the client signals are carried over
   transport network and defines YANG data models which are required
   during configuration procedure.  More specifically, several client
   signal (of transport network) models including ETH, STM-n, FC and so
   on, are defined in this draft.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-client-signal-yang-16"/>
      </reference>
      <reference anchor="I-D.ietf-teas-yang-te">
        <front>
          <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths, and Interfaces</title>
          <author fullname="Tarek Saad" initials="T." surname="Saad">
            <organization>Cisco Systems Inc</organization>
          </author>
          <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
            <organization>Cisco Systems Inc</organization>
          </author>
          <author fullname="Xufeng Liu" initials="X." surname="Liu">
            <organization>Alef Edge</organization>
          </author>
          <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
            <organization>Juniper Networks</organization>
          </author>
          <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
            <organization>Individual</organization>
          </author>
          <date day="2" month="November" year="2025"/>
          <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-40"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 1137?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was prepared using kramdown.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+0923bcxpHv8xWd0YMphzOUHG/sUElsWpRsniOJWpE+iTeb
BwymOYMlBpjgIoqRuN+y37JftlXV90Y3LqNkn4LjYw2Bqurq6uquS98Wi8Ws
yZqcn7L5Gfvl7M2P7DxpEva6XPOc3ZQVu+LV+yzl7G3SbNnzcrdvm6TJymI+
S1arir8HxDhImjR8U1b3p6xu1rPZukyLZAdlravkplncr1aLNE12+0UtKCz2
QGGRGgqLJ7+Z1e1ql9U1/NXc7wH34sX1S8YesSSvSyg8K9Z8z+F/RTM/ZnO+
zpqyypIc/7g4+wH+gUrML95dv5zPina34tXpbA1snc7Ssqh5Ubf1KWuqls+g
Kr+ZJRVPgOq7sm2yYjOf3ZXV7aYq2z28hKrtygJqWDRVmbOkWLPXPKnbiu+g
dPY2Two+n93ye0Ban87YghX8Q8M2vOAVVQdftUWWlhX9rPdJdZtDMWyd1U2V
rdqGr1nO1xtezd7zogUmGZtWOmNCSvM/AeNI+kdEx/e7JMvhPQn8+4w3N8uy
2uCHpEq38GHbNPv69OQE4fBV9p4vFdgJvjhZVeVdzU+IwglibrJm264A95f2
+TYBlTkZ27CInUMr1I1VsqKyFHSXWTma3mjA5bbZ5fPZLGmbbVlhIwEnjAm1
FMWzX1p6B/U+ZT+1yR3P2DVPt0WZl5uM1/SRC3HetynhfL8luCWU5JKEvrHJ
SvYDz8umyQzdN+VtltiUagJcrgTg9wV+75K7aJIcqLV1NprFDFGWK0CJMnmW
wRf2Y1saoi/bBjSrj26CSJu2JCX5foMvu5TP4SOvsPo56HS89muCw9oDnFX5
WVFWO2i499AVZllxY/01WywWLFlBx0nSZja73mY1gwGmpd6w5jdZwWuWiDFt
jWPaTo9paZ4hUJ1tiiRnUlW+qBkqC7OUhToZvdwlRbKhjrYUBe+y9Trns9kj
doH9cd2m1MFnL4E8cFTU+7JqWKNkd3/Mmi33iwKOtxmMDdjb0iQ/ZlmR5u0a
u+3l9ZtFntxzopblNbHyp/PXzsslO0thMCGEpqQSbtoiJd6xYjCspdiMUhxr
trpnF9c/L64FN50yRPGc5eUdrxZAGD5dnv98ewxsbrbWC+Lm8hp+KEaugZ5k
z6d2eX11zC5fXwmk51vxnVBqblcPeYJB+SbbtGK8ZOWNbKtFnQElkqkLgRoB
yAwswKIpF/BPuHWh2d76rZuhfqRiWC14g0O91dBGlEsmWxVsi5CsaWFJvj7G
aooaQk1VpUD0MNCUqLPQvvm9sgXQFGUBFpNaLAObJGChagVP8asUxz1odPFF
wyr+tzZDYsV9R0mF7DuqC5Xb8wrFQ4WJBgfhd5QqWZUw0rNrU71cams/zZuq
3InmLFFhbO0g6rIkUDn6gWwCPvyHkkBdhHGu3C3aPUv2+6pM0i200WXB0Rgm
75OigXZABejCIZFmmzRCYURrY02wLaDEggN1YCorYEiBsYHdgTlhHBFLwKjY
rs2bbJ+D+LMdx06EuOWO05/HNlVLWMB2UZQNW3EpEiikLRr4oDo2QNrwwGTN
m3YvK74uecKQAGKDJhBTiIpsFkrbOyK/g5FhC8B5TsiZHGxAFaBngyZ6/UW0
s1RmkOcFjGFr0a5OxfYVv0Gtw1EDdRn+kIwsVkkNVXPpZkXd8GRN/RHZ5x90
h3EBgR7IOePvA9qDTVSumiSDn7kQG8mr/qILW/EaGolBG5eFaCeh5kLOx6yt
W+pPWUNKiXRodEOia+hvUEYqHKUcwaHt2Jbne+RvzUFsWvr91fG6maO/Tblf
rMu7wlZf1wjdwI8ajJBsFY3Qqe2NNhowCgBicAQj+RXgEw9DHr1APYcqqTeP
gbc/cXKZBVfIEygGiLlG44HaD9oMPQ++YfPLAQerAT2iBi+HJWCsyjuUIHaf
vwM1MZplqWVoUL5Zje0hLZwy2bKWwYanVk75MdVQllHveZrd3AvOoLLgTTSo
sFKWdn8Dayp7XGEb2ZBS/a0Fj9Mtp93TOL4rK6MMErNA3yIjCVgYwkKEB0ih
trUNTh2Ny8F+hzxq/qryfYZxDbaA5A3a6dEjcLmqXSb8BiL1phT06xn4TNgN
bkCvyzsy+wAqjIey8VDCx4+/evfy+Te/+7cnDw9ijIfvMHwAdsUVHGgIulGM
fcmkGsk/hGzlH0m72ZlPxo+yXxTwQnHWWKxjg695nUJkg6x6nhj1pZsStA5Y
BmybaSmGinPwIJMNtP5sdgZaDs2T3WTAPLzak88EFYKxDOK4RnsMNAYYhw9K
aWsll3q/h/7DOciFIK3uupwh/zueUHtIOvX9blWSLyOBBTdItCPvb3/ztWb9
LTR79gG/UTj9BsOKN6DD1IIXhVvyMTnLNZap5Sl0SNgrqzLl6r/AQagpauM0
imcf0BBRLyaGG8BLqrX8Br22LtOMPA415gEyOI0gtH1ZrHXDgGyhHwAYFNTm
aAehw9dbHK9kv7KULlnl6FF9UvWE5xP7JYFPrwmbhZ5P7J3uC/Q34C/Uw6zf
4ceHIPw0R9/wfUrkMRARo+NCeY2yqykG/vMv0E6/wPNXpllQJBb7NEzEDyFV
ZV4+Z3+GB6l8PGWPQCgL2SAwIGFO5Q/zt+pvbMyA0KWs5w+zGZJ7QckL7O7Q
M9/mEN1z1O88gSpQUdpsiUwGti6M/MLdwddIRDqWqF8YE4PDArwTC/h56dNF
aRi6SEDQrh3ioOEXi3MK9WSArf1ytDyLe2h71H1NfAdOpeACxh3UlUfsRUGk
8J/XxssGpb/W3vQbaYWfC7N2JcyazC/NqIPaAROUk4uBcZvtqctqSmHDiH6A
NSBjvcDaL4CMThg0Lfjg+cPD6exIVgYrQP6mjpqYADLDArkMwkLX7arGsRzt
P731wiom/WRDRURX4S8yzlIvpBMkbJYwG5YAoLe2+dpxMCnaYz8uSXtoxMqE
MwOxmiQqvALFYyPiuGN2A4YwW2yqDKqU8iKpslLmnGAMZOk2IVz1STAWb5sJ
rD2ezf4bHlC/NMsWSdXMPv3e9PrrmPNjQP74aSa66O+d8WKBgr2mKndhfWgU
jwsLkMgWdfWwzqhOb7MYVGSSYwZuwpXwYgQ6DgIYZ2rfLajCjhcvP6FWQ1gC
Op3swf+gwR7cltIEOtpFpUiWf0jQzzlG7zmKa9QQjF4FRgejQkDuw3n99tXV
4vrtydX5T7qLyEi28KmCLr9RHYvqZJDIyQbFgZC/wliYxq6ybdZUksmpEG0Y
xG5rbfayv5uYGDo6OHUy8aJU+A7fR2Qs/KhutbrcYSgmPRvhAQQ8CTO0cLAf
/vBCprUm0r0jmu/Jn/b2jnC9fHUXGLKxpJqzo8u9iP4fM7tnON0i1INMF7JA
u90n2H+6glF9SFdkYgdCwZsBHmKGbbn2nLWG2maUOesdbVdgqziXoZ1Udtkz
ZJyFrq2KSeUcRXqvKuon5xSkzRrE3DXxAr+EZwkulAnMeudnhAetQs4zOQCI
/CQUc+1Hr5GUj4xL1AAOlRP5AQyOg3k2dkEhOSZhhOugIjnqhmVbyeaD7gMy
lZmBNIVAVKT3QOdlI6mQiDlJDAoIZdLOxIUmRpWekcqlAAOYsUnyVPToYwy7
YAjRGQkw0OBzyXA/2ScrKAe9344k9mWepfcmJWziQ3ZUc2w46Siq1w8Pj5e8
SUV+iYbAYHZCJHeaKttseKVzEqrU0k+WRNJ9MmGi7WwRz7NYMflS64M13MtM
sx7uBqNqLPlYpCtlB8A0BbgPNfWaFY3DAQImLSTRGohzMasDuiE8z1hGBw2R
/AuTP4XMDtndkPogWimPDbsuAUUXhLoFIknBlgjqIaQUqqjpq8J1/5DpbDJj
OjjdJR+yXbtDqYm+0DZZrqzW7Crb4eQbFnH9QjWAL/HjeFvI5qc0Y8VB3ylj
rDhzs4Ns3VYqarzblrkrDugl2CeFBxpKPwJdEZ2iK7jhPvVlx06JWOc0HqV1
Aq1ZtU9rnAJlvwYD8oH54BWXmVhpgACqQk8WXimTpF7K1v2S/UX+WmTrvxog
5sHB12AICw9O1BabAKrkvi2a7yKoLYjv2wBmA9av3JNLAwVjMvgmk7NlLmBd
pQsxVi5wrKwDIGtgfgBEqMNCjGfOdy0uM0aGv1uDZhigBGdiJ9U6xAP/sIfS
swZ+Q/vBWEHRx8KkN0KFEqgA8TCgXXEdwIdQk3pFyUAnWBQLFuVi+EXJ+raN
0TpmiQmGxqDSuWAxpXOUrUsZ1G3NPW3jYAC50zQ23pFEXHOwD/nj72YuMkKd
Ht3AJ3BMHvsfdUtIAPDhkrosbAZQxX/zVRSRV1VZLXagnRD+O4wHaqrYAcuO
+txhR1dKzcfQAFKDuKkr+rL2WJEw6j16Wadtm60HcYSD8R1z+3OXq95e3QWP
9O0uYKSHdwHB/eQVWH7pcYYAY7C+ksfQCCj4PSYbG1sORJj89JQ458kNuPFD
+GMlbCNpZcnrPVQT/h/RFA9PAE6qpYOLy3KcWsY6apQCeLpVlkaaUTyfuvBQ
R/GDOBhZUXv8q40yUACHccVrTCzItQMUeJyLSR/tTr4+v3p+zLIbTBfcJRir
YCRAUyLa3bDnhuTEIs2qYi+LRiPk5dLMybrPP9y1daO9YJ2KaIK+tIkYGrEi
QSX3RJxPGXYvcYKBl/GYJ+VkEkwDdlJ9yNtNVqnJKYoWAF0lcD4YbJkrNKii
EqNLR/xu8SrFQ6k5aHyqkS6dpgjtTB/40bh4opAeoIjGdI6FUjrAgUUfJ8NF
HC1aTWemTKBRL73pU9nKdXCiEYMbloPrjYolZ4CIaTkv3pl9rPgmqdY5xpli
Tl1oL00gu9EDebsgPRKSYFeMc7Ti4YmYrRXzubsSGbCbAXP8uZy6xyxnbWco
NGlfgecCTI6+c9AGuRxQRV+vrt6ybbnvetXLnmcWtwOjRv0pY/y0EX2c36t9
UZRVBSBIE5FgIKtP4ccmL1dJvtBGW+PISEFgjMSxWPHLsT45FRiyJeMtx1Q7
0WMVptgA20+2IOitaJHm3rHDAYT3Sd5y5Q7Zvl8Ati0yER357t6g6bElEtHL
rjEWgDidqlUBH7tp5ccYGoTIGjXsIkrOs+J20exNMY767MMl5PDBLqC3BKCT
JyueO590Wx+ZrLjn1H9SUKdHd+CsPw58NFRwuof4DhLRDXp6tL5b7yKkHLZw
XjqH5qwWMPxDH5bzRj3krUIEcm8xdmHI06JwKedPZDOIj6NKRUaHCmXabW9X
aVJVMG4tRBFfHlQ+lZz2ClUXmYp6MufRBaWxgqiIsglqgKYN38OfNUSz10UD
MOj2IEK9UQjBISWCtEDjjoiByNA0ObktmRuD2l2PusxCgwX6lWN5kYyyVMbb
lal1ne79+MjP9M5mIustPSH0EIZWIdmpcTefDIPJLafh50QOK2J2FpcKnVDe
A38JqHiWUC5rjHGB+fnaXgBFyUxaBXWbFWtrLaKqpEmx28uzBP0TwcSJ9Loo
X7I+kTmatXIZaTkspmWVp1j3CCFJqxJ8NeWoO+63WBTGS3Qg7yjjScKwiCXk
WKIMu+xg8vguec9zXmyI3d789jSXy3K7xuaQ+rwsbdIilqyj75Y5i1gxehxD
E7FgHdrajEWsV4yybbniBitkpwbMU9wqHWCMhm3QsOlx2yUw9g+anEmWZrgM
16x8ljUJGJGw7RhrMqZYipEG4rPsQsAc6EDGil56PHXHVXeth1nwBK8esSvM
novl7f68LXtHOQ5pUNqa37Q5jWzJ+6FFpzeNmEC8p5G24hAogxm4Mivb5ZBJ
cWy5R07LSsa7u+SWy5nqlBalqvkcRZ0C7npLu1poOfbFjWFHpkqQRz3HHliG
rTJDlvXhct8H1FIH7e4cHc5j2XZTRO/C2GJyAmvYWYJxzO6QdbTHogS5yKSb
KTIT2zT7m1OjQEUw5xEVNS0DBoFlDduDlcoQTZdBNfRWmvUks6wVwX5dxUKS
TipDSsjbmGQlR0ydalBgs7pPzFJQBWN+wbu3z5fsUvIs0zz4klEWXrSuUB0Q
0PEAH6RZyXpNi/jJt8gavltK3cZ1dVbTROUjdEuuSF/LGX2hajij+562LoRb
d8l+Ku9YXkJbpiSSrDHIuJofNWinFg8vhPeQpUv2A4gpsxR8C27PCld7JOty
L3NYSbTd7I1cxiVy/Tc7wwm6IreWrMEradTmGlr3ixNtuH6SFoWOWt9ur3cR
a6eg/Y5Nv6kBnGMiLLB9zFr3j2ry7sXV9fPLNy+PhQqY2WW1j4nmgUGKuM1G
DhhmtbLomcSP7oqiAeVGA6GZqhCadSzTMscpO16Rh3yDvmjCcEY5qWhBTV3m
bdgvO2CCWY7nd2Jmx+iwleUR34KTShaql98JBPICWGnKAsdQO+rHtW2LBDex
wQcf632SZ2uwhgsQS1YKfyuQQLrrn/IJgkRnegT0xAkegTR5XkeijZrO+aTl
Pj4v2EWekCDsIk/KFHqVHD39JMAnzToZlImTTQYxPsf0qQs2PLVk3MO7cfnF
PsxoorEPKZpxDFR+ROrRwxqRg/QwJicjQ/jDWUm/dtPSkz72uDylhxVMWOpH
q1M8c2nDxlOYHpShG8tldhFYNKkZhDVFjMtuxoioYkNpzh4cXXwo36mfvsTj
IEPdDGgPClP8DKRCD2ctkhwNwmpu0lHSCWRLPbLhtKkHpEv186ddOA06kEjt
wxzOqPZi96VWbUSpZjqWDgOOTbfqR2pLLO+qAmcZOZs9Y+DZ68XO1tZJ2uRM
E/BtRXsugvsr3WXOXhBqrVC2J3BxRYBIriqnyY16w8FKfxCs1kfvMJfKkzrj
VWeXaE+oqLdhS57NwlPNI/nXwpu3JdD1l68pkILwjK+V0J0tl73Ly9nHR3ov
5T/GE+9xxPv98Clu+EFe+FgnfNgHn+SCH+KBdx1wD0ANBos/shMIKBuVuq9V
Ch+RwkTHuOc93nnMr+7xyQdRAp541AGf5n9Pd78P9b5HON+H+N4Hu96HeN6H
ON4H+d2T3e7P9LoPcro/y+c+yOUe4XFPcLhH+dtT3e0J3vY/wtk+wNc+0NUO
oqlnjK873Qv/fCc8SOFQpgf888nuuYfQYavHaR/js3dd9v5uc5jf/llu+6Fe
+1in3ZLtVPc94r2DP7Fcnoj/aHjGgy70/h3EGrGBh8DunB08skrwtm8Lj2lQ
Azh2D4+DO20Tj4Pa7x/ZA8pilHvkYYzwjjyMUc6RXYPYFgSPrgSxbWqPOe1B
BgOH2MXd6Sic3DKmUVsaR5WlsaI57cNwNgKLwgK91RZbbEPGv8TWK7bQNrRA
N3H3oRmAAExgRr6PjQgRmlHEoHmBB9GtcqK4KsucJz1cbMt8vShvbuyQ0n5c
z7mLf5dkDR5gSKUHBh/Ef/rbOH6yr9Xm9c4CIYX/bUTK3d18gQIsoM+Qs02l
Tre8I6vJVP45zTWhvWiCdnqDDTV4jIAcqrdJxYn5Oi+bvioL+NB+TN/lBLCj
JN+UVdZsd8at7jrEp0cixnscAWGhUvvj1qD7LIh4wWufgnSR73i22RrphnuB
hg6v6pFPIIjvUhDpK8HxCuerg8KOg48Qz+GysTHbPcZQVKYK7H/7dWiYHrVT
tzOijN+qGxDiwFrIMNKktZE9JPrXSoYRJ6ydjBAYXksZRvRD/m5nXUQifg9S
9Wwn4O/CGJqBeD8IzkLhfgzSkB+M9ntIqCK9YL8fQxftxfqDWOqJRM1j+HQi
/X4Epi1ANNAfJHAgx90wPwapmUzHyTLEUzrAUyfG74JoNjohfhBWg8cj/AG8
3gB/CDcS34d1tBPeR5RyRHTfHVQCa2D7ihk1lRAY8waX0DqoQWsUPszBl+2E
0xwClnK0NbKRDrRGHRJjrZGNeJA1cghMsUY2Ytga6d+D1kj/7rFGNswIa+SB
s7g16kJOtkZBEqzPGsUw+q1RD5Z6esf2fj4D1iiGwMZaox4CB3Ics0ZdSNZr
jYLwHZ5C1sjGjFgjG4QNWCMPlo21RlG8EdYojttrjfTvfmvU+T3aGtm8DFoj
9/cEa2SXMtoa/XoROu9Hvh488EfD9aeoQyl+u4TQwT9Rjm30ofN/hCLHDgCS
TX7ACUAGc+oRQGpQip4BJOlOOQTIcDPhFCAPafgYIAk9/pQaU8DoxRMu3vgV
FC7elGUUVs1GHFlkypiW/h4kEU2C92GOSoUPEYglxIN449LiXdGOOOTpX6I9
TLTjjsUKAw+fiyXxDj0YS3XI+AIuVxT0TFnL1S1q2iFaBw9SHvbEocrDnjxg
2TWefgKYRDzsCDAL+dAzwCwSIw4BM2I66BQw46uOPRRmHI3h7Ru96MMbOcxj
aj9lS4ePP2Vzh4+rxuIhaNWFR+8CCRY0YT+Ij28lCw7htWfvSKekibtIfPz+
/SQOm9LXHd5Z4mAFkw798Kaswd0mAVQWSkaMwTLFTtyBEiWnWOndi9KHrVnq
3ZUyQEE9o3aIDNelZxtLHzLT/u3IDS0DxP4BteomO8Zg6Yr07oWJ4nb47tss
41PpJET6wTWr/avxQngadeyGml4a9WakmPRvesbaxUiho3bkOCRkZxvYm+Og
qGfyhh3zyH7hLP4bwlFPd4Wgcx9EvU9pN4m6AeIqtsudgOQ9XPNZUtFx4+Qq
/2E+fsPJEsngjRGPJt16Lbe6oOmaydubJuxyYR9RWCdfsuvL88tT9vLiz69f
sC9PhATpnge5loU9XT59hisoxc1ge7yoad5WxSmWdUrXHtSnH3b5aVGfkhkd
z8P8GZKVt4PN8fIrvPsq3TdzUaC4B6znLq2Pgl2PgiDLrI1Mc3Elc+8dGwLr
oVuwVFG/MPU+UBreXPXtN9/8li3wPqmbmyxlL4pNVnBOp9zL27Opra8NiW7R
4rqNUOGG4U7Bv/3d755CwXYhpFBOSYzN3KLobKunTmGyrFy+FaV5hf0HPFBY
+Lr2V3Sq6VOr5FjBT4IFPzEFBxAb7oJDg8gy8G1ZbZJCLvcRYppf4B2seI+L
3RbXSX2LB3rhTZV4m/tj9vz52eu37E8/ClHRub2pzK7O1fhycb4QF5qJK95P
zbijr+1mR4H7uB8/M5Dubdx4b0f40m0bx1y5zY6Cd2nbwPombXYUuR/78TMN
bNCca7LZUeQ27A6q7LLiJqK9JXY6SFcOT/1XYZv7GSU35go1fSWqPFpY3nQs
DrqVFFq8rgPvTC2rnQpK5VEi6i4366431FVaLsfO8L4jXHGJx8QcvXl9foZX
lMrmLPf3FS7bYkfpY/bVk6+eMtQS6NZ4qLO6KBp8u9qsZdOZC3HkCV3uXqtL
HDFZvoS2yXNGdPE4ErJha13mO1CqWpy5q+4kwRs+8Gwec2UNSCmp6FrLXX0s
zi4pVaZEnZsMcsETZORFHeLC5F3W0LnWbVW3CR5TXB6rq+IwLnXFloOMi5rL
iz3lEda0oVRsXb0yl2D+cHXOXglwSaPmeOtsJU5RupK33Hy9TJUkjBy/qNkr
vklys5W21qLIk0YeCUPw5/JMJQVwtG2afX16ctIgIc5JwZfQ+U8k7ws8rAja
U4CTLiq7pi7dtG4/JCEl4uYfdafiM6iJqpO6ljBrap7fkNLSYVE5sV+UDSml
6AoVF3VBrfl68eQb+E+N4p1OAt2ErpwDIpK7zuCuAYUpu1+tpCXrN65iNJwx
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
trgpmt1WyW4Nzbec/R+tWUf+NLMAAA==

-->

</rfc>
