<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ybb-ccamp-service-path-computation-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.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-02"/>
    <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="2025" month="July" day="01"/>
    <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="4" month="February" 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-14"/>
      </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="29" month="May" 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-38"/>
      </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
QGGRGgqLJ1/N6na1y+oa/mru94B78eL6JWOPWJLXJRSeFWu+5/C/opkfszlf
Z01ZZUmOf1yc/QD/QCXmF++uX85nRbtb8ep0tga2TmdpWdS8qNv6lDVVy2dQ
ld/MkoonQPVd2TZZsZnP7srqdlOV7R5eQtV2ZQE1LJqqzFlSrNlrntRtxXdQ
OnubJwWfz275PSCtT2dswQr+oWEbXvCKqoOv2iJLy4p+1vukus2hGLbO6qbK
Vm3D1yzn6w2vZu950QKTjE0rnTEhpfmfgHEk/SOi4/tdkuXwngT+fcabm2VZ
bfBDUqVb+LBtmn19enKCcPgqe8+XCuwEX5ysqvKu5idE4QQxN1mzbVeA+0v7
fJuAypyMbVjEzqEV6sYqWVFZCrrLrBxNbzTgctvs8vlslrTNtqywkYATxoRa
iuLZLy29g3qfsp/a5I5n7Jqn26LMy03Ga/rIhTjv25Rwvt8S3BJKcklC39hk
JfuB52XTZIbum/I2S2xKNQEuVwLw+wK/d8ldNEkO1No6G81ihijLFaBEmTzL
4Av7sS0N0ZdtA5rVRzdBpE1bkpJ8v8GXXcrn8JFXWP0cdDpe+zXBYe0Bzqr8
rCirHTTce+gKs6y4sf6aLRYLlqyg4yRpM5tdb7OawQDTUm9Y85us4DVLxJi2
xjFtp8e0NM8QqM42RZIzqSpf1AyVhVnKQp2MXu6SItlQR1uKgnfZep3z2ewR
u8D+uG5T6uCzl0AeOCrqfVk1rFGyuz9mzZb7RQHH2wzGBuxtaZIfs6xI83aN
3fby+s0iT+45Ucvymlj50/lr5+WSnaUwmBBCU1IJN22REu9YMRjWUmxGKY41
W92zi+ufF9eCm04ZonjO8vKOVwsgDJ8uz3++PQY2N1vrBXFzeQ0/FCPXQE+y
51O7vL46ZpevrwTS8634Tig1t6uHPMGgfJNtWjFesvJGttWizoASydSFQI0A
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
7koZoKCeUTtEhuvSs42lD5lp/3bkhpYBYv+AWnWTHWOwdEV698JEcTt8922W
8al0EiL94JrV/tV4ITyNOnZDTS+NejNSTPo3PWPtYqTQUTtyHBKysw3szXFQ
1DN5w455ZL9wFv8N4ainu0LQuQ+i3qe0m0TdAHEV2+VOQPIervksqei4cXKV
/zAfv+FkiWTwxohHk269lltd0HTN5O1NE3a5sI8orJMv2fXl+eUpe3nx59cv
2JcnQoJ0z4Ncy8KeLp8+wxWU4mawPV7UNG+r4hTLOqVrD+rTD7v8tKhPyYyO
52H+DMnK28HmePkV3n2V7pu5KFDcA9Zzl9ZHwa5HQZBl1kamubiSufeODYH1
0C1YqqhfmHofKA1vrvr2m29+yxZ4n9TNTZayF8UmKzinU+7l7dnU1teGRLdo
cd1GqHDDcKfg3/7ud0+hYLsQUiinJMZmblF0ttVTpzBZVi7fitK8wv4DHigs
fF37KzrV9KlVcqzgJ8GCn5iCA4gNd8GhQWQZ+LasNkkhl/sIMc0v8A5WvMfF
bovrpL7FA73wpkq8zf0xe/787PVb9qcfhajo3N5UZlfnany5OF+IC83EFe+n
ZtzR13azo8B93I+fGUj3Nm68tyN86baNY67cZkfBu7RtYH2TNjuK3I/9+JkG
NmjONdnsKHIbdgdVdllxE9HeEjsdpCuHp/6rsM39jJIbc4WavhJVHi0sbzoW
B91KCi1e14F3ppbVTgWl8igRdZebddcb6iotl2NneN8RrrjEY2KO3rw+P8Mr
SmVzlvv7CpdtsaP0MfvqyVdPGWoJdGs81FldFA2+XW3WsunMhTjyhC53r9Ul
jpgsX0Lb5DkjungcCdmwtS7zHShVLc7cVXeS4A0feDaPubIGpJRUdK3lrj4W
Z5eUKlOizk0GueAJMvKiDnFh8i5r6FzrtqrbBI8pLo/VVXEYl7piy0HGRc3l
xZ7yCGvaUCq2rl6ZSzB/uDpnrwS4pFFzvHW2EqcoXclbbr5epkoSRo5f1OwV
3yS52Upba1HkSSOPhCH4c3mmkgI42jbNvj49OWmQEOek4Evo/CeS9wUeVgTt
KcBJF5VdU5duWrcfkpAScfOPulPxGdRE1UldS5g1Nc9vSGnpsKic2C/KhpRS
dIWKi7qg1ny9ePIN/KdG8U4ngW5CV84BEcldZ3DXgMKU3a9W0pL1G1cxGs6Y
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
6R4WYlGBa2QCGaDerE9M6UflgMblfYZyPYP5Hbe+rimWqkD3Y4IadM8DtY0T
/Ofsgar2O9p/4u+B6ly+Yy2fns/ECnWcBl/skuoW2P7DvKlaPmfWl6n7o743
K6iXtPGFtkqBJ4vOMXVgnEQ8x70FmThUlu6qxT4HIl3XbP7656vr+bH4l725
pN/vXvz7zxfvXpzj76ufzl690j9mEuLqp8ufX52bXwbz+eXr1y/enAtkeMuc
V7P567Nf5mJd/fzy7fXF5ZuzV/POvcB0M7K4QTbDrSn7iq5bTeqZ3Aghrm76
4fnb//2fp1+zjx9/9e7l86+ePv3dw4P849un33wNf+DMsSitLPJ7+SfevTxL
9nue0JW0OEeUJnvcNFIf476EelveFQzv1V3OZl/+BSXz11P2+1W6f/r1H+UL
rLDzUsnMeUky677pIAshBl4FitHSdN57knb5PfvF+VvJ3Xr5++8g9uJs8fTb
7/44QxW64inEeM096lKN50ckSn0uzy/1VwK9OHtz1gVzmhPv5S1KAZlQN61B
tLPFYgFjc3o7g64lppz5+g/zG2gHuefvLL0tyrucrzdiZ4NH9g7IgmrsE4wJ
W9wUzW6rZLeG5lvO/g+7snGONLMAAA==

-->

</rfc>
