<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ybb-ccamp-service-path-computation-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.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-01"/>
    <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="January" day="03"/>
    <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="1" month="August" year="2024"/>
          <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-13"/>
      </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="9" month="October" year="2024"/>
          <abstract>
            <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

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

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-37"/>
      </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
QGGRGgqLJ09ndbvaZXUNfzX3e8C9eHH9krFHLMnrEgrPijXfc/hf0cyP2Zyv
s6assiTHPy7OfoB/oBLzi3fXL+ezot2teHU6WwNbp7O0LGpe1G19ypqq5TOo
ym9mScUToPqubJus2Mxnd2V1u6nKdg8voWq7soAaFk1V5iwp1uw1T+q24jso
nb3Nk4LPZ7f8HpDWpzO2YAX/0LANL3hF1cFXbZGlZUU/631S3eZQDFtndVNl
q7bha5bz9YZXs/e8aIFJxqaVzpiQ0vxPwDiS/hHR8f0uyXJ4TwL/PuPNzbKs
NvghqdItfNg2zb4+PTlBOHyVvedLBXaCL05WVXlX8xOicIKYm6zZtivA/aV9
vk1AZU7GNixi59AKdWOVrKgsBd1lVo6mNxpwuW12+Xw2S9pmW1bYSMAJY0It
RfHsl5beQb1P2U9tcsczds3TbVHm5SbjNX3kQpz3bUo4328JbgkluSShb2yy
kv3A87JpMkP3TXmbJTalmgCXKwH4fYHfu+QumiQHam2djWYxQ5TlClCiTJ5l
8IX92JaG6Mu2Ac3qo5sg0qYtSUm+3+DLLuVz+MgrrH4OOh2v/ZrgsPYAZ1V+
VpTVDhruPXSFWVbcWH/NFosFS1bQcZK0mc2ut1nNYIBpqTes+U1W8JolYkxb
45i202NammcIVGebIsmZVJUvaobKwixloU5GL3dJkWyooy1Fwbtsvc75bPaI
XWB/XLcpdfDZSyAPHBX1vqwa1ijZ3R+zZsv9ooDjbQZjA/a2NMmPWVakebvG
bnt5/WaRJ/ecqGV5Taz86fy183LJzlIYTAihKamEm7ZIiXesGAxrKTajFMea
re7ZxfXPi2vBTacMUTxneXnHqwUQhk+X5z/fHgObm631gri5vIYfipFroCfZ
86ldXl8ds8vXVwLp+VZ8J5Sa29VDnmBQvsk2rRgvWXkj22pRZ0CJZOpCoEYA
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
d6UMUFDPqB0iw3Xp2cbSh8y0fztyQ8sAsX9ArbrJjjFYuiK9e2GiuB2++zbL
+FQ6CZF+cM1q/2q8EJ5GHbuhppdGvRkpJv2bnrF2MVLoqB05DgnZ2Qb25jgo
6pm8Ycc8sl84i/+GcNTTXSHo3AdR71PaTaJugLiK7XInIHkP13yWVHTcOLnK
f5iP33CyRDJ4Y8SjSbdey60uaLpm8vamCbtc2EcU1smX7Pry/PKUvbz48+sX
7MsTIUG650GuZWFPl0+f4QpKcTPYHi9qmrdVcYplndK1B/Xph11+WtSnZEbH
8zB/hmTl7WBzvPwK775K981cFCjuAeu5S+ujYNejIMgyayPTXFzJ3HvHhsB6
6BYsVdQvTL0PlIY3V337zTe/ZQu8T+rmJkvZi2KTFZzTKffy9mxq62tDolu0
uG4jVLhhuFPwb3/3u6dQsF0IKZRTEmMztyg62+qpU5gsK5dvRWleYf8BDxQW
vq79FZ1q+tQqOVbwk2DBT0zBAcSGu+DQILIMfFtWm6SQy32EmOYXeAcr3uNi
t8V1Ut/igV54UyXe5v6YPX9+9vot+9OPQlR0bm8qs6tzNb5cnC/EhWbiivdT
M+7oa7vZUeA+7sfPDKR7Gzfe2xG+dNvGMVdus6PgXdo2sL5Jmx1F7sd+/EwD
GzTnmmx2FLkNu4Mqu6y4iWhviZ0O0pXDU/9V2OZ+RsmNuUJNX4kqjxaWNx2L
g24lhRav68A7U8tqp4JSeZSIusvNuusNdZWWy7EzvO8IV1ziMTFHb16fn+EV
pbI5y/19hcu22FH6mH315KunDLUEujUe6qwuigbfrjZr2XTmQhx5Qpe71+oS
R0yWL6Ft8pwRXTyOhGzYWpf5DpSqFmfuqjtJ8IYPPJvHXFkDUkoqutZyVx+L
s0tKlSlR5yaDXPAEGXlRh7gweZc1dK51W9VtgscUl8fqqjiMS12x5SDjouby
Yk95hDVtKBVbV6/MJZg/XJ2zVwJc0qg53jpbiVOUruQtN18vUyUJI8cvavaK
b5LcbKWttSjypJFHwhD8uTxTSQEcbZtmX5+enDRIiHNS8CV0/hPJ+wIPK4L2
FOCki8quqUs3rdsPSUiJuPlH3an4DGqi6qSuJcyamuc3pLR0WFRO7BdlQ0op
ukLFRV1Qa75ePPkG/lOjeKeTQDehK+eAiOSuM7hrQGHK7lcracn6jasYDWdM
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
LW6KZrdVsltD8y1n/weBjyoeNLMAAA==

-->

</rfc>
