<?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-yu-ccamp-resource-pm-yang-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="Resource PM YANG">A YANG Data Model for Resource Performance Monitoring</title>
    <seriesInfo name="Internet-Draft" value="draft-yu-ccamp-resource-pm-yang-03"/>
    <author fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="F." surname="Peruzzini" fullname="Fabio Peruzzini">
      <organization>FiberCop</organization>
      <address>
        <email>fabio.peruzzini@fibercop.com</email>
      </address>
    </author>
    <author initials="Y." surname="Zheng" fullname="Yanlei Zheng">
      <organization>China Unicom</organization>
      <address>
        <email>zhengyanlei@chinaunicom.cn</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="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>
    <author initials="X." surname="Zhao" fullname="Xing Zhao">
      <organization>CAICT</organization>
      <address>
        <email>zhaoxing@caict.ac.cn</email>
      </address>
    </author>
    <author initials="M." surname="Jin" fullname="Mingshuang Jin">
      <organization>Huawei Technologies</organization>
      <address>
        <email>jinmingshuang@huawei.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="04"/>
    <area>Routing</area>
    <workgroup>Common Control and Measurement Plane</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 76?>

<t>This document defines a YANG data model for resource Performance Monitoring, applicable to network controllers,  which provides the functionalities of retrieval of performance monitoring capabilities, TCA (Threshold Crossing Alert) configuration, current or history performance data retrieval, and performance monitoring task 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-yu-ccamp-resource-pm-yang/draft-yu-ccamp-resource-pm-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-yu-ccamp-resource-pm-yang/"/>.
      </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-yu-ccamp-resource-pm-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 80?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Resource performance monitoring is a basic function of network management. By viewing and analyzing the performance data of different resources (such as network element, interface, board, termination point, tunnel termination point) operators can detect the running state of the network in time, quickly resolve real-time problems or identify major risks in advanced , avoiding users' complaints.</t>
      <t>According to the business requirements stated in <xref target="TMF-518"/>, resource performance monitoring requirements include:</t>
      <ul spacing="normal">
        <li>
          <t>Retrieval of current and historical performance measurements for network resources</t>
        </li>
        <li>
          <t>Distribution of Threshold Crossing Alerts (TCAs) to the collectors of PM data</t>
        </li>
        <li>
          <t>Control of performance monitoring in the network: enable/disable of PM collection and TCA generation</t>
        </li>
      </ul>
      <t>Currently, there are some existing documents related to performance monitoring in IETF, but there is no overlap with our current work. The relative monitored objects are summarized in Table 1.</t>
      <table>
        <thead>
          <tr>
            <th align="left">YANG Module</th>
            <th align="left">Performance-Monitored Object</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ietf-te-telemetry, ietf-vn-telemetry</td>
            <td align="left">TE tunnel, virtual network</td>
            <td align="left">
              <xref target="I-D.ietf-teas-actn-pm-telemetry-autonomics"/></td>
          </tr>
          <tr>
            <td align="left">ietf-network-vpn-pm</td>
            <td align="left">VPN service topology</td>
            <td align="left">
              <xref target="RFC9375"/></td>
          </tr>
          <tr>
            <td align="left">ietf-service-pm</td>
            <td align="left">Transport network service</td>
            <td align="left">
              <xref target="I-D.zheng-ccamp-client-pm-yang"/></td>
          </tr>
          <tr>
            <td align="left">ietf-lmap-control, ietf-lmap-report</td>
            <td align="left">massive measurement agents in broadband service</td>
            <td align="left">
              <xref target="RFC8194"/></td>
          </tr>
        </tbody>
      </table>
      <t><xref target="I-D.ietf-teas-actn-pm-telemetry-autonomics"/> provides a YANG data model that describes performance monitoring and scaling intent mechanisms for TE-Tunnels and Virtual Networks(VNs). <xref target="I-D.ietf-opsawg-yang-vpn-service-pm"/> defines a YANG data model for performance monitoring of both network topology layer and overlay VPN service topology layer. <xref target="I-D.zheng-ccamp-client-pm-yang"/> provides a performance monitoring YANG data model on client signal level. <xref target="RFC8194"/> defines a data model for Large-Scale Measurement Platforms(LMAP), focusing on  task capability and configuration of massive measurement agents.</t>
      <t>This document defines a YANG module for resource performance monitoring, which defines the capabilities of resource performance monitoring, the tca configuration model of a specific resource. In addition, the sub-module of monitoring task and a few RPCs are defined to support the operations of performance monitoring, such as data retrieval and controlling the monitoring tasks.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>Refer to <xref target="RFC7446"/> and <xref target="RFC7581"/> for the key terms used in this document.  The following terms are defined in <xref target="RFC7950"/> and are not redefined here:
*  client
*  server
*  augment
*  data model
*  data node</t>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined here:
*  configuration data
*  state data</t>
        <t>The following terms are defined in <xref target="RFC8454"/> and are not redefined here:
*  CMI
*  MPI
*  MDSC
*  CNC
*  PNC</t>
        <ul empty="true">
          <li>
            <t>To Be Added: some explanation of performance indicator</t>
          </li>
        </ul>
      </section>
      <section anchor="tree-diagram">
        <name>Tree Diagram</name>
        <t>A simplified graphical representation of the data model is used in Section 3 of this document.  The meaning of the symbols in these diagrams are 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">rpm</td>
              <td align="left">ietf-resource-pm</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">rpm-types</td>
              <td align="left">ietf-resource-pm-types</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC6991"/></td>
            </tr>
          </tbody>
        </table>
        <t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.</t>
      </section>
    </section>
    <section anchor="yang-data-model-for-resource-performance-monitoring">
      <name>YANG Data Model for Resource Performance Monitoring</name>
      <section anchor="capabilities-of-resource-performance-monitoring">
        <name>Capabilities of Resource Performance Monitoring</name>
        <t>### Supported Resources and Corresponding PM Capabilities
A generic "resources" structure is defined to describe the objects that could be monitored:</t>
        <ul spacing="normal">
          <li>
            <t>"resource":  the identifier of a monitored object</t>
          </li>
          <li>
            <t>"resource-type": indicate what exact kind of resource is</t>
          </li>
          <li>
            <t>"holding time": the longest time period that performance data could be monitored</t>
          </li>
          <li>
            <t>"indicator name": the indicators that could be monitored for the resource</t>
          </li>
          <li>
            <t>"sub-resources": the identifier of the performace monitoring point of this resource (e.g., if the resource is a network element, the sub resources may be a list of termination points)</t>
          </li>
        </ul>
        <artwork type="ascii-art"><![CDATA[
module: ietf-resource-pm
   +--rw performance-monitoring
      +--rw resources
         +--rw resource-list* [resource]
            +--rw resource             union
            +--ro resource-type?       identityref
            +--ro holding-time?     uint8
            +--ro indicator-name*   string
            +--ro sub-resources*    -> ../resource
]]></artwork>
        <section anchor="introduction-of-performance-indicators">
          <name>Introduction of Performance Indicators</name>
          <t>It is impossible to list all the PM indicator exhaustively, even if ITU-T and IETF has done a lot of work.  Some new performance indicators would be raised once there are some new requirements and technologies. So in this document we would like to provide String type rather than an explicit type for performance indicator, to have a better compatibility for future extension. Then if there are some new indicators, there is no need to revise this document or create a branch of documents to standardize the PM indicators.</t>
          <t>For optical network, a performance management information table in the session10.2 of <xref target="ITU-T_G.874"/> lists all the PM current data and history data collected on the EMF(Equipment Management Function). A few indicators of different resources are listed below as an example.</t>
          <t>// To be added: performance indicators of different resources in optical network.</t>
          <t>For IP network, a few indicators of different resources are listed below as an example.
For a network element, following are possible indicators:
* CPU usage.
* Memory usage.
* Total active routes.
* Total active mac entries.</t>
          <t>For an interface, following are possible indicators:
* Ingress unicast packets.
* Ingress multicast packets.
* Ingress discard packets.
* Ingress error packets.
* Ingress unknown protocol packets.
* Egress unicast packets.
* Egress multicast packets.
* Egress discard packets.
* Egress error packets.</t>
          <t>For a board, following are possible indicators:
* CPU usage.
* Memory usage.</t>
        </section>
      </section>
      <section anchor="threshold-crossing-alert-control">
        <name>Threshold Crossing Alert Control</name>
        <t>Threshold crossing alert control parameters could be set directly for a resource, or set through applying an existing profile to the resource. Therefore, there are four main requirements for Threshold Crossing Alert Control:</t>
        <ul spacing="normal">
          <li>
            <t>Creation/retrieval/deletion/updating of TCA profile;</t>
          </li>
          <li>
            <t>Enabling/disabling TCA reporting on the resource;</t>
          </li>
          <li>
            <t>Configuring TCA on the resource by associating an existing profile;</t>
          </li>
          <li>
            <t>Configuring TCA on the resource by detailed parameters.</t>
          </li>
        </ul>
        <t>To satisfy the above requirements, the module defines "tca-management", including the "profile" structure to enable the preset of tca parameters, "tca" structure to describe the tca parameters (directly set or preset by applying profiles) and tca status of a specific resource.</t>
        <t>And for the TCA parameters, no matter it is configured directly on the resource or by a preset profile, there should not be any differences. The TCA parameters (tca-indicator) should include:</t>
        <ul spacing="normal">
          <li>
            <t>Threshold-type: This threshold type is used to indicate when the alert will be triggered.  By exceeding the upper bound value, or by below the lower bound value.</t>
          </li>
          <li>
            <t>Period: This period is used to indicate the frequency of the data collection.</t>
          </li>
          <li>
            <t>Severity: This severity is used to indicate what level of alert would be triggered if cross the threshold.</t>
          </li>
          <li>
            <t>Indicator-value: The value of threshold.</t>
          </li>
          <li>
            <t>Indicator-value-unit: The unit of threshold value.</t>
          </li>
        </ul>
        <t>In addition, the function of enabling/disabling TCA on the resource can be controlled by the "admin-status" attribute in "tca" node. The pre-defined profiles with unique profile id could be applied to "tca" node, shown as "applied-profiles" in "tca" node.</t>
        <artwork type="ascii-art"><![CDATA[
module: ietf-resource-pm
  +--rw performance-monitoring
     +--rw tca-management
     |  +--rw profiles
     |  |  +--rw profile* [profile-id]
     |  |     +--rw profile-id      yang:uuid
     |  |     +--rw profile-name?   string
     |  |     +--rw tca-cfg
     |  |        +--rw tca-indicator* [indicator-name threshold-type period severity]
     |  |           +--rw indicator-name          string
     |  |           +--rw indicator-value         string
     |  |           +--rw indicator-value-unit    string
     |  |           +--rw threshold-type          enumeration
     |  |           +--rw period                  identityref
     |  |           +--rw severity                identityref
     |  +--rw tcas
     |     +--rw tca* [resource]
     |        +--rw resource            -> /performance-monitoring/resources/resource-list/resource
     |        +--ro resource-type?      identityref
     |        +--rw admin-status?       enumeration
     |        +--rw applied-profiles
     |        |  +--rw profile* [profile-id]
     |        |     +--rw profile-id    -> ../../../../../profiles/profile/profile-id
     |        +--rw tca-cfg
     |           +--rw tca-indicator* [indicator-name threshold-type period severity]
     |              +--rw indicator-name          string
     |              +--rw indicator-value         string
     |              +--rw indicator-value-unit    string
     |              +--rw threshold-type          enumeration
     |              +--rw period                  identityref
     |              +--rw severity                identityref
]]></artwork>
      </section>
      <section anchor="data-retrieval-of-resource-performance-monitoring">
        <name>Data Retrieval of Resource Performance Monitoring</name>
        <section anchor="get-currenthistory-performance-monitoring-data">
          <name>Get Current/History Performance Monitoring Data</name>
          <t>For the retrieval of current/history performance data, we consider these data are not suitable to define in a data model.  Because performance data can be changed frequently and if we follow that approach, according to the requirement of on-change notification in YANG-push <xref target="RFC8641"/>, once the performance data changes, the controller should trigger a notification to the northbound system, there would be great number of notifications reported in the big network.</t>
          <t>These two retrieval interfaces are usually invoked on-demand. It is also hard to support retrieving performance data of multiple resources by data model in one request. And for history performance data retrieval, there could be a requirement to specify the start time and end time.  It is not quite flexible to support this requirement by data model neither. So we suggest to define an RPC to accomplish these two functions.</t>
          <artwork type="ascii-art"><![CDATA[
  rpcs:
    +---x get-pm-data
    |  +---w input
    |  |  +---w resources*                     -> /performance-monitoring/resources/resource-list/resource
    |  |  +---w is-requesting-history-data?   boolean
    |  |  +---w start-time?                    yang:date-and-time
    |  |  +---w end-time?                      yang:date-and-time
    |  +--ro output
    |     +--ro pm-data
    |        +--ro pm-data-list* [resource]
    |           +--ro resource          -> /performance-monitoring/resources/resource-list/resource
    |           +--ro task-id*          yang:uuid
    |           +--ro collect-time?     yang:date-and-time
    |           +--ro resource-type?    identityref
    |           +--ro indicator-data
    |              +--ro indicator-data-list* [indicator-name]
    |                 +--ro indicator-name          string
    |                 +--ro indicator-value?        string
    |                 +--ro indicator-value-unit?   string
]]></artwork>
        </section>
        <section anchor="get-profile-associated-resources">
          <name>Get Profile Associated Resources</name>
          <t>For the TCA related definition, it can be found in the previous Section (Section2.2). A TCA profile can be associated with a lot of resources, so we don't defined a resource list under the profile instance to avoid reporting some unnecessary notifications while the resource instances in this list have been changed. We define an RPC operation to support this flexible retrieval request.</t>
          <artwork type="ascii-art"><![CDATA[
  rpcs:
    +---x get-profile-associated-resources
       +---w input
       |  +---w profile-id?   -> /performance-monitoring/tca-management/profiles/profile/profile-id
       +--ro output
          +--ro resource-list*   -> /performance-monitoring/resources/resource-list/resource
]]></artwork>
        </section>
      </section>
      <section anchor="controlling-of-resource-performance-monitoring">
        <name>Controlling of Resource Performance Monitoring</name>
        <section anchor="clear-performance-monitoring-data-of-specific-resources">
          <name>Clear Performance Monitoring Data of Specific Resources</name>
          <t>We define an RPC to enable clearing the performance monitoring data of specified resources. If there are any resources failed to clear performance monitoring data, their identifier should be returned by the failed-resources leaf list. An empty list indicates that this operation was performed successfully.</t>
          <artwork type="ascii-art"><![CDATA[
  rpcs:
    +---x clear-performance-monitoring-data
    |  +---w input
    |  |  +---w resources*   -> /performance-monitoring/resources/resource-list/resource
    |  +--ro output
    |     +--ro failed-resources*   -> /performance-monitoring/resources/resource-list/resource
]]></artwork>
        </section>
        <section anchor="enabledisable-performance-monitoring">
          <name>Enable/Disable Performance Monitoring</name>
          <t>To enable/disable performance monitoring data, we introduce a monitor task to do this control. In the monitoring task, the resource, the monitored period, the monitored indicators could be set. The disabling, enabling operation can be satisfied by changing the admin status which includes disabled, enabled. The change's result will affect the task status accordingly.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-resource-pm
      +--rw performance-monitoring
         +--rw monitor-tasks
         |  +--rw monitor-task* [task-id]
         |     +--rw task-id          yang:uuid
         |     +--rw resource-id?     leafref
         |     +--ro resource-type?   identityref
         |     +--rw task-name?       string
         |     +--rw admin-status?    enumeration
         |     +--ro task-status?     enumeration
         |     +--rw task-cfg
         |        +--rw period?       identityref
         |        +--rw indicators
         |           +--rw indicator* [indicator-name]
         |              +--rw indicator-name          string
         |              +--rw indicator-value-unit?   string
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="resource-performance-monitoring-tree-diagram">
      <name>Resource Performance Monitoring Tree Diagram</name>
      <figure anchor="fig-rpm-tree">
        <name>Resource Performance Monitoring tree diagram</name>
        <artwork type="ascii-art" name="ietf-resource-pm.tree"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

module: ietf-resource-pm
  +--rw performance-monitoring
     +--rw resources
     |  +--rw resource-list* [resource]
     |     +--rw resource          union
     |     +--ro resource-type?    identityref
     |     +--ro holding-time?     uint8
     |     +--ro indicator-name*   string
     |     +--ro sub-resources*    -> ../resource
     +--rw tca-management
     |  +--rw profiles
     |  |  +--rw profile* [profile-id]
     |  |     +--rw profile-id      yang:uuid
     |  |     +--rw profile-name?   string
     |  |     +--rw tca-cfg
     |  |        +--rw tca-indicator*
     |  |                [indicator-name threshold-type period \
                                                            severity]
     |  |           +--rw indicator-name          string
     |  |           +--rw indicator-value         string
     |  |           +--rw indicator-value-unit    string
     |  |           +--rw threshold-type          enumeration
     |  |           +--rw period                  identityref
     |  |           +--rw severity                identityref
     |  +--rw tcas
     |     +--rw tca* [resource]
     |        +--rw resource            leafref
     |        +--ro resource-type?      identityref
     |        +--rw admin-status?       enumeration
     |        +--rw applied-profiles
     |        |  +--rw profile* [profile-id]
     |        |     +--rw profile-id    leafref
     |        +--rw tca-cfg
     |           +--rw tca-indicator*
     |                   [indicator-name threshold-type period \
                                                            severity]
     |              +--rw indicator-name          string
     |              +--rw indicator-value         string
     |              +--rw indicator-value-unit    string
     |              +--rw threshold-type          enumeration
     |              +--rw period                  identityref
     |              +--rw severity                identityref
     +--rw monitor-tasks
        +--rw monitor-task* [task-id]
           +--rw task-id          yang:uuid
           +--rw resource?        leafref
           +--ro resource-type?   identityref
           +--rw task-name?       string
           +--rw admin-status?    enumeration
           +--ro task-status?     enumeration
           +--rw task-cfg
              +--rw period?       identityref
              +--rw indicators
                 +--rw indicator* [indicator-name]
                    +--rw indicator-name          string
                    +--rw indicator-value-unit?   string

  rpcs:
    +---x get-pm-data
    |  +---w input
    |  |  +---w resources*                    leafref
    |  |  +---w is-requesting-history-data?   boolean
    |  |  +---w start-time?                   yang:date-and-time
    |  |  +---w end-time?                     yang:date-and-time
    |  +--ro output
    |     +--ro pm-data
    |        +--ro pm-data-list* [resource]
    |           +--ro resource          leafref
    |           +--ro task-id*          yang:uuid
    |           +--ro collect-time?     yang:date-and-time
    |           +--ro resource-type?    identityref
    |           +--ro indicator-data
    |              +--ro indicator-data-list* [indicator-name]
    |                 +--ro indicator-name          string
    |                 +--ro indicator-value?        string
    |                 +--ro indicator-value-unit?   string
    +---x clear-performance-monitoring-data
    |  +---w input
    |  |  +---w resources*   leafref
    |  +--ro output
    |     +--ro failed-resources*   leafref
    +---x get-profile-associated-resources
       +---w input
       |  +---w profile-id?   leafref
       +--ro output
          +--ro resource-list*   leafref
]]></artwork>
      </figure>
    </section>
    <section anchor="yang-model-for-resource-performance-monitoring">
      <name>YANG Model for Resource Performance Monitoring</name>
      <figure anchor="fig-rpm-yang">
        <name>Resource Performance Monitoring YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-resource-pm@2025-07-04.yang"><![CDATA[
module ietf-resource-pm {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-resource-pm";
  prefix rpm;

  import ietf-yang-types {
    prefix "yang";
  }

  import ietf-resource-pm-types {
    prefix "rpm-types";
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ccamp/>
     WG List:  <mailto:ccamp@ietf.org>

     Editor:   Chaode Yu
               <yuchaode@huawei.com>

     Editor:   Fabio Peruzzini
               <fabio.peruzzini@fibercop.com>

     Editor:   Yanlei Zheng
               <zhengyanlei@chinaunicom.cn>

     Editor:   Victor Lopez
               <victor.lopez@nokia.com>

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

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

     Editor:   Xing Zhao
               <zhaoxing@caict.ac.cn>

     Editor:   Mingshuang Jin
               <jinmingshuang@huawei.com>";

  description
    "This module defines a model for resource performance
    monitoring.

    The model fully conforms to the Network Management
    Datastore Architecture (NMDA).

    Copyright (c) 2025 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Revised BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.

    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.";

  revision 2025-07-04 {
    description  "Initial revision.";
  }

  container performance-monitoring {
    description
      "the root node.";

    uses resource-info-grouping;
    uses tca-management-grouping;
    uses monitoring-tasks-grouping;
  }

  grouping resource-info-grouping {
    description
      "grouping of resources' PM capabilities related information";

    container resources {
      description
        "resources' PM capabilities related information";

      list resource-list {
        description
          "list of resource instances";
        key resource;

        leaf resource {
          type union {
            type instance-identifier {
              require-instance false;
            }
            type yang:object-identifier;
            type string;
            type yang:uuid;
          }
        }

        leaf resource-type {
          type identityref {
            base rpm-types:resource-type;
        }
        config false;
          description
          "the type of resource, such as NE, board or port";
     }

      leaf holding-time {
         description
           "Contains the time period in hours within which 24h PM
            data records and 15min PM data records may be retrieved.
            If the domain controller does not store PM data it is the
            time supported in the NE";
        config false;
        type uint8;
        units "hour";
      }

     leaf-list indicator-name {
        type string;
        config false;
     }

     leaf-list sub-resources {
       description
          "the identifier of the performace monitoring point of this
          resource. If the resource is a NE, the sub-resource should
          be termination point. If the resource is a termination
          point contained in this NE, the sub-resource should be the
          logic channel on this TP";
      config false;
      type leafref {
        path "../rpm:resource";
      }
    }
  }
}

}

  grouping monitoring-tasks-grouping {
    description
      "grouping of performance monitoring task";

    container monitor-tasks {
      description
        "Information of PM tasks";

      list monitor-task {
        description
          "monitoring task list";

        key task-id;
        uses task-instance-grouping;
      }
    }
  }

  grouping task-instance-grouping {
    description
      "grouping of performance monitoring task. In this monitoring
      task, the client can specify a resource to run a monitor task
      and what kind of performance data need to be monitored.";

    leaf task-id {
      description
        "identifier of the performance task";
      type yang:uuid;
    }

    leaf resource {
      description
        "the identifier of network resource on which the performance
        monitoring task is running";

      type leafref {
        path "/rpm:performance-monitoring/rpm:resources" +
        "/rpm:resource-list/rpm:resource";
      }
    }

    leaf resource-type {
      description
        "the type of resource, such as NE, board or port";

      config false;
      type identityref {
        base rpm-types:resource-type;
      }
    }

    leaf task-name {
      description
        "the name of monitoring task";

      type string;
    }

    leaf admin-status {
      description
        "it is used to control enbling/disabling PM task";

      type enumeration {
        enum enabled {
          description
            "it is used to enable the pm task, if the task is enabled,
            the task-staus should be running";
        }

        enum disabled {
          description
            "it is used to disenable the pm task, if the task is
            disabled, the task-staus should be suspended";
        }
      }
    }

    leaf task-status {
      config false;
      description
        "the status of monitoring task.";

      type enumeration {
        enum running;

        enum suspended;

        enum abnormal;
      }
    }

    uses task-configuration-grouping;
  }

  grouping task-configuration-grouping {
    description
      "grouping of pm task configuration";

    container task-cfg {
      description
        "Configuration of the monitoring task";

      leaf period {
        description
          "it is used to indicate the interval as per monitoring
          task";
        type identityref {
          base rpm-types:period;
        }
      }

      container indicators {
        description
          "performance indicators";

        list indicator {
          description
            "list of PM indicators to be monitored";

          key indicator-name;
          uses indicator-grouping;
        }
      }
    }
  }

  grouping indicator-grouping {
    description
      "grouping of a monitoring indicator instance";

    leaf indicator-name {
      description
        "performance indicator's name";

      type string;
    }

    leaf indicator-value-unit {
      description
        "unit of indicator value";

      type string;
    }
  }

  grouping tca-management-grouping {
    description
      "grouping of configuration and management for Threshol Crossing
      Alert";

    container tca-management {
      description
        "configuration and management for Threshol Crossing Alert";

      container profiles {
        description
          "the TCA profile in the whole network";

        list profile {
          description
            "List of TCA profile instances";

          key "profile-id";
          uses tca-profile-grouping;
        }
      }

      container tcas {
        description
          "TCA configuration on the network resources.";

        list tca {
          description
            "List of TCA configuration instances";

          key "resource";

          leaf resource {
            description
              "the identifier of network resource on which threshold
              is configured for TCA purpose";

            type leafref {
              path "/rpm:performance-monitoring/rpm:resources" +
              "/rpm:resource-list/rpm:resource";
            }
          }

          leaf resource-type {
            description
              "the type of resource, such as NE, board or termination
              point";

            config false;

            type identityref {
              base rpm-types:resource-type;
            }
          }

          leaf admin-status {
            description
              "it is used to control the validity of threshold";
            type enumeration {
              enum enabled {
              description
                "if the admin-status of TCA configuration is enabled,
                the threshold is effective";
              }

              enum disabled {
                description
                  "if the admin-status of TCA configuration is
                  disabled, the threshold is not effective";
              }
            }
          }

          uses tca-grouping;
        }
      }
    }
  }

  grouping tca-profile-grouping {
    description
      "grouping of TCA profile instance";

    leaf profile-id {
      description
        "identifier of threshold crossing alerrt profile";

      type yang:uuid;
    }

    leaf profile-name {
      description
        "Name of the threshold crossing alerrt profile";

      type string;
    }

    container tca-cfg {
      description
        "detailed TCA configuration in a profile";

      list tca-indicator {
        description
          "list of TCA configuration.";

        key "indicator-name threshold-type period severity";
        uses tca-indicator-grouping;
      }
    }
  }

  grouping tca-indicator-grouping {
    description
      "grouping for detail TCA configuration";
    leaf indicator-name {
      type string;
      description
        "name of the indicator";
    }

    leaf indicator-value {
      mandatory true;
      type string;
      description
        "treshold value of the indicator";
    }

    leaf indicator-value-unit {
      mandatory true;
      type string;
      description
        "unit of indicator's value";
    }

    leaf threshold-type {
      description
        "it is used to indicate the trigger/clearing condition of
        alert upon the threshold";

      type enumeration {
        enum upperbound-trigger {
          description
            "If the performace data exceeds this threshold value,
            a TCA will be triggered";
        }
        enum lowerbound-trigger {
          description
            "if the performace data is lower than this threshold
            value, a TCA will be triggered";
        }
        enum upperbound-clear {
          description
            "If the performance data is not longer bigger than this
            threshold value, the TCA triggered before will be cleared
            by system automatically";
        }
        enum lowerbound-clear {
          description
            "If the performance data is not longer lower than this
            threshold value, the TCA triggered before will be cleared
            by system automatically";
        }
      }
    }

    leaf period {
      description
        "it is used to indicate the interval as per monitoring task";

      type identityref {
        base rpm-types:period;
      }
    }

    leaf severity {
      description
        "it is used to indicate what severity level of alert would be
        triggered if not confirms to the threashold";

      type identityref {
        base rpm-types:severity;
      }
    }
  }

  grouping tca-grouping {
    description
      "grouping of TCA configuration";

    container applied-profiles {
        description
          "Information of applied TCA profiles on this resource";

      list profile {
          description
            "list of applied TCA profile";

        key "profile-id";

        leaf profile-id {
          description
            "identifier of the applied TCA profile";

          type leafref {
            path "../../../../../rpm:profiles/rpm:profile" +
            "/rpm:profile-id";
          }
        }
      }
    }
    container tca-cfg {
      description
        "detailed configuration of TCA";
      list tca-indicator {
         description
           "list of tca indicator configuration";
        key "indicator-name threshold-type period severity";
        uses tca-indicator-grouping;
      }
    }
  }

  rpc get-pm-data {
    input {

      leaf-list resources {
        description
          "the identifier of resources from which performace
          data is collected";

        type leafref {
          path "/rpm:performance-monitoring/rpm:resources" +
          "/rpm:resource-list/rpm:resource";
        }
      }

      leaf is-requesting-history-data {
        description
        "true indicate this is a request for historic data, then start-time and end-time should be assigned";
        type boolean;
      }
      leaf start-time {
        description
        "the starttime of performance data needed to be retrieved";

        type yang:date-and-time;
      }

      leaf end-time {
        description
        "the endtime of performance data needed to be retrieved";

        type yang:date-and-time;
      }
    }
    output {
      container pm-data {
        description
          "result of historic performance data";

        list pm-data-list {
          description
            "list of historic performance data";

          key resource;
          uses pm-data-instance-grouping;
        }
      }
    }
  }

  rpc clear-performance-monitoring-data {
        description
        "This operation clears (reset) the PM registers for a list of
        Measurement Points. Within the request for each Measurement
        Point, it is possible to specify the granularity (15min, 24hr,
        NA) and location (nearEnd and/or farEnd and/or bidirectional)
        for the PM registers that are to be reset.";
    input {

      leaf-list resources {
        description
          "the identifier of measurement points to clear PM data";

        type leafref {
          path "/rpm:performance-monitoring/rpm:resources" +
          "/rpm:resource-list/rpm:resource";
        }
      }
    }
    output {
      leaf-list failed-resources {
        description
          "the identifier of measurement points which are failed to
          clear PM data. An empty list indicates that the total
          request was successful.";

        type leafref {
          path "/rpm:performance-monitoring/rpm:resources" +
          "/rpm:resource-list/rpm:resource";
        }
      }
    }
  }

  rpc get-profile-associated-resources {
    input {

      leaf profile-id {
        description
          "the identifier of profile which the client want to
          retrieve";

        type leafref {
          path "/rpm:performance-monitoring/rpm:tca-management"
          + "/rpm:profiles/rpm:profile/rpm:profile-id";
        }
      }

    }
    output {
      leaf-list resource-list {
        description
          "Provides the set of Resources associated with the profile
          provided.";

        type leafref {
          path "/rpm:performance-monitoring/rpm:resources" +
          "/rpm:resource-list/rpm:resource";
        }
      }
    }
  }

  grouping pm-data-instance-grouping {
    description
      "grouping for common attributes of performance data";

    leaf resource {
    description
      "the identifier of network resource which is monitored.";

      type leafref {
        path "/rpm:performance-monitoring/rpm:resources" +
        "/rpm:resource-list/rpm:resource";
      }
    }

    leaf-list task-id {
       description
        "the task id list of the tasks from which the pm data is retrieved";

        type yang:uuid;
    }
    leaf collect-time {
      description
        "the time of this data is collected";

      type yang:date-and-time;
    }

    leaf resource-type {
      description
        "the type of resource, such as NE, board or port";

      type identityref {
        base rpm-types:resource-type;
      }
    }

    container indicator-data {
      description
        "grouping for historic performance data";

      list indicator-data-list {
        description
          "list of historic performance data";
        key indicator-name;

        uses indicator-data-instance-grouping;
      }
    }
  }

  grouping indicator-data-instance-grouping {
    description
      "grouping for a performance data";

    leaf indicator-name {
      description
        "name of performance data indicator";

      type string;
    }

    leaf indicator-value {
      description
        "value of performance data";

      type string;
    }

    leaf indicator-value-unit {
      description
        "unit of performance data value";

      type string;
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="yang-model-for-resource-performance-monitoring-types">
      <name>YANG Model for Resource Performance Monitoring Types</name>
      <figure anchor="fig-rpm-type-yang">
        <name>Resource Performance Monitoring Types YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-resource-pm-types@2025-07-04.yang"><![CDATA[
module ietf-resource-pm-types {
  yang-version 1.1;
  namespace
  "urn:ietf:params:xml:ns:yang:ietf-resource-pm-types";

  prefix rpm-types;

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

     Editor:   Chaode Yu
               <yuchaode@huawei.com>

     Editor:   Fabio Peruzzini
               <fabio.peruzzini@fibercop.com>

     Editor:   Yanlei Zheng
               <zhengyanlei@chinaunicom.cn>

     Editor:   Victor Lopez
               <victor.lopez@nokia.com>

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

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

     Editor:   Xing Zhao
               <zhaoxing@caict.ac.cn>

     Editor:   Mingshuang Jin
               <jinmingshuang@huawei.com>";

  description
    "This module defines types model for resource performance
    monitoring which will be imported by ietf-resource-pm
    data model.

    The model fully conforms to the Network Management
    Datastore Architecture (NMDA).

    Copyright (c) 2025 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Revised BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.

    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.";

  revision 2025-07-04 {
    description  "Initial revision.";

  }

  identity resource-type {
    description "this is the base type of all the rerource type";
  }

  identity network-element {
    base resource-type;
    description "NE resource type";
  }

   identity interface {
      base resource-type;
      description "Network interface";
   }

  identity board {
    base resource-type;
    description "board resource type";
  }

  identity termination-point {
    base resource-type;
    description "Termination point resource";
  }

  identity tunnel-termination-point {
    base resource-type;
    description "Tunnel termination point resource";
  }

  identity period {
    description
      "this is the base type of all the performace monitoring priod
      type.";
  }

  identity period-15-minutes {
    base period;
    description
      "the during of monitoring task will be repeated at every 15
      minutes";
  }

  identity period-24-hours {
    base period;
    description
       "the during of monitoring task will be repeated at every 24
       hours";
  }

  identity severity {
    description
        "it is used to indicate what severity alarm will be caused if
        exceeds the threshold";
  }

  identity critical {
    description
        "critical alarm will be caused if exceeds the threshold";
    base severity;
  }

  identity major {
    description
        "major alarm will be caused if exceeds the threshold";
    base severity;
  }

  identity minor {
    description
        "minor alarm will be caused if exceeds the threshold";
    base severity;
  }

  identity warning {
    description
        "only a warning will be caused if exceeds the threshold";
    base severity;
  }

  identity layer-rate-type {
    description
        "It is used to indicate the layer rate of network element when
        retrieving the pm parameters supported";
  }
}

]]></sourcecode>
      </figure>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>&lt;Add any manageability considerations&gt;</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t>
      <t>The NETCONF access control model <xref target="RFC8341"/> provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations. Considerations in Section 8 of <xref target="RFC8795"/>are also applicable to their subtrees in the module defined in this document.</t>
      <t>Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. Considerations in Section 8 of <xref target="RFC8795"/> are also applicable to their subtrees in the module defined in this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document registers following YANG modules in the YANG Module Names registry <xref target="RFC6020"/>.</t>
      <t>name:         ietf-resource-pm
   namespace:    urn:ietf:params:xml:ns:yang:ietf-resource-pm
   prefix:       dvcrpm
   reference:    RFC XXXX: A YANG Data Model for Resource Performance Monitoring</t>
      <t>name:         ietf-resource-pm-types
   namespace:    urn:ietf:params:xml:ns:yang:ietf-resource-pm-types
   prefix:       dvcrpm-types
   reference:    RFC XXXX: A YANG Data Model for Resource Performance Monitoring</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="TMF-518" target="https://www.tmforum.org/resources/collection/mtosi-4-0">
          <front>
            <title>Resource Performance Management</title>
            <author>
              <organization>TM Forum (TMF)</organization>
            </author>
            <date year="2011"/>
          </front>
          <seriesInfo name="TMF518_RPM" value=""/>
        </reference>
        <reference anchor="ITU-T_G.874" target="https://www.itu.int/rec/T-REC-G.874/en">
          <front>
            <title>Management aspects of optical transport network elements</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date year="2020" month="October"/>
          </front>
          <seriesInfo name="ITU-T Recommendation G.874" value=""/>
        </reference>
        <reference anchor="RFC9375">
          <front>
            <title>A YANG Data Model for Network and VPN Service Performance Monitoring</title>
            <author fullname="B. Wu" initials="B." role="editor" surname="Wu"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>The data model for network topologies defined in RFC 8345 introduces vertical layering relationships between networks that can be augmented to cover network and service topologies. This document defines a YANG module for performance monitoring (PM) of both underlay networks and overlay VPN services that can be used to monitor and manage network performance on the topology of both layers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9375"/>
          <seriesInfo name="DOI" value="10.17487/RFC9375"/>
        </reference>
        <reference anchor="RFC8194">
          <front>
            <title>A YANG Data Model for LMAP Measurement Agents</title>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="V. Bajpai" initials="V." surname="Bajpai"/>
            <date month="August" year="2017"/>
            <abstract>
              <t>This document defines a data model for Large-Scale Measurement Platforms (LMAPs). The data model is defined using the YANG data modeling language.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8194"/>
          <seriesInfo name="DOI" value="10.17487/RFC8194"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC7446">
          <front>
            <title>Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks</title>
            <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
            <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
            <author fullname="D. Li" initials="D." surname="Li"/>
            <author fullname="W. Imajuku" initials="W." surname="Imajuku"/>
            <date month="February" year="2015"/>
            <abstract>
              <t>This document provides a model of information needed by the Routing and Wavelength Assignment (RWA) process in Wavelength Switched Optical Networks (WSONs). The purpose of the information described in this model is to facilitate constrained optical path computation in WSONs. This model takes into account compatibility constraints between WSON signal attributes and network elements but does not include constraints due to optical impairments. Aspects of this information that may be of use to other technologies utilizing a GMPLS control plane are discussed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7446"/>
          <seriesInfo name="DOI" value="10.17487/RFC7446"/>
        </reference>
        <reference anchor="RFC7581">
          <front>
            <title>Routing and Wavelength Assignment Information Encoding for Wavelength Switched Optical Networks</title>
            <author fullname="G. Bernstein" initials="G." role="editor" surname="Bernstein"/>
            <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
            <author fullname="D. Li" initials="D." surname="Li"/>
            <author fullname="W. Imajuku" initials="W." surname="Imajuku"/>
            <author fullname="J. Han" initials="J." surname="Han"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>A Wavelength Switched Optical Network (WSON) requires certain key information fields be made available to facilitate path computation and the establishment of Label Switched Paths (LSPs). The information model described in "Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks" (RFC 7446) shows what information is required at specific points in the WSON. Part of the WSON information model contains aspects that may be of general applicability to other technologies, while other parts are specific to WSONs.</t>
              <t>This document provides efficient, protocol-agnostic encodings for the WSON-specific information fields. It is intended that protocol- specific documents will reference this memo to describe how information is carried for specific uses. Such encodings can be used to extend GMPLS signaling and routing protocols. In addition, these encodings could be used by other mechanisms to convey this same information to a Path Computation Element (PCE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7581"/>
          <seriesInfo name="DOI" value="10.17487/RFC7581"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8340">
          <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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8795">
          <front>
            <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="I. Bryskin" initials="I." surname="Bryskin"/>
            <author fullname="V. Beeram" initials="V." surname="Beeram"/>
            <author fullname="T. Saad" initials="T." surname="Saad"/>
            <author fullname="H. Shah" initials="H." surname="Shah"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8795"/>
          <seriesInfo name="DOI" value="10.17487/RFC8795"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-teas-actn-pm-telemetry-autonomics">
          <front>
            <title>YANG models for Virtual Network (VN)/TE Performance Monitoring Telemetry and Scaling Intent Autonomics</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei</organization>
            </author>
            <author fullname="Ricard Vilalta" initials="R." surname="Vilalta">
              <organization>CTTC</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <date day="21" month="April" year="2025"/>
            <abstract>
              <t>   This document provides YANG data models that describe the performance
   monitoring parameters and scaling intent mechanisms for TE-tunnels
   and Virtual Networks (VNs).  Their performance monitoring parameters
   are exposed as the key telemetry data for tunnels and VN.

   The models presented in this document allow customers to subscribe to
   and monitor the key performance data of the TE-tunnel or the VN.  The
   models also provide customers with the ability to program autonomic
   scaling intent mechanisms on the level of TE-tunnel as well as VN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-pm-telemetry-autonomics-15"/>
        </reference>
        <reference anchor="I-D.zheng-ccamp-client-pm-yang">
          <front>
            <title>A YANG Data Model for Client Signal Performance Monitoring</title>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Zheng Yanlei" initials="Z." surname="Yanlei">
              <organization>China Unicom</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   A transport network is a server-layer network to provide connectivity
   services to its client.  Given the client signal is configured, the
   followup function for performance monitoring, such as latency and bit
   error rate, would be needed for network operation.

   This document describes the data model to support the performance
   monitoring functionalities.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zheng-ccamp-client-pm-yang-12"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-yang-vpn-service-pm">
          <front>
            <title>A YANG Data Model for Network and VPN Service Performance Monitoring</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Bin Wen" initials="B." surname="Wen">
              <organization>Comcast</organization>
            </author>
            <date day="11" month="November" year="2022"/>
            <abstract>
              <t>The data model for network topologies defined in RFC 8345 introduces vertical layering relationships between networks that can be augmented to cover network and service topologies.  This document defines a YANG module for performance monitoring (PM) of both underlay networks and overlay VPN services that can be used to monitor and manage network performance on the topology of both layers.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-yang-vpn-service-pm-15"/>
        </reference>
        <reference anchor="RFC8454">
          <front>
            <title>Information Model for Abstraction and Control of TE Networks (ACTN)</title>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="S. Belotti" initials="S." surname="Belotti"/>
            <author fullname="D. Dhody" initials="D." surname="Dhody"/>
            <author fullname="D. Ceccarelli" initials="D." surname="Ceccarelli"/>
            <author fullname="B. Yoon" initials="B." surname="Yoon"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>This document provides an information model for Abstraction and Control of TE Networks (ACTN).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8454"/>
          <seriesInfo name="DOI" value="10.17487/RFC8454"/>
        </reference>
        <reference anchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </reference>
      </references>
    </references>
    <?line 1330?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was prepared using kramdown.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+09a3PcNpLfVeX/gBt/sJQdjixHzkPePBRZTnRlKTpL2Vzu
duuKw8HMcMUh5/iQMrF1v/36AYAAQXJmJOdury7arVgigUaj0Q30C80gCJ7s
lHGZyCMxOBa/HF98L16HZSjOs4lMxDTLxTtZZFUeSXEpc/h7Eabw+3mWxmWW
x+ls8GQnHI9zeQsA6qbnBAreRWEpZ1m+OhJFOXmy82RnkkVpuIDhJnk4LYNV
FURRuFgGueobLBfBKkxnwfNPn+wU1XgRF0WcpeVqCX3OTq/fCPFUhEmRwXhx
OpFLCf9Jy8FQDOSEcAoT/OPs+Dv4B/AfnL27fgOYpNViLPMjwABQgn+iLC1k
WlTFkSjzSj7ZgRnAkGEuQ5xKVpU8u7ssv5nlWbWEpyfZYpGl4gTwybNEhOlE
nMuwqHK5ABzEZRKmErrcyBX0msAgIhCp/LUUM5nKPCxhIvSsSuMoy/n3Yhnm
NwmMJSZxUebxuCrlRCRyMpM5ICXTCrEVYkschGCSDX4G/BH699ifXizCOIEX
RPdvY1lOR1k+ozdhHs3hzbwsl8XR/j42xEfxrRzpdvv4YH+cZ3eF3CcQ+9R1
Fpfzagydf6lO5iFwz/6aBaZeCaxFUVpD6t4jhjeKs3Vw1r0fzctFMkDWC6ty
nuVEzAD/I8S0ShLmRh5V/FLxC5homMa/0YodiR+q8E7G4lpG8zRLslksC24m
mZSrKqLu386p4SjKFtYgPMCbcBxnKEPVb7/FaWyGgTcx8OVJtnRATrH5aKmb
fzvFRlG2bIX9S5gmgN+/zWU6swCfzOM0FD8hry0c4L9hwxV1+jbCRsSPi1GU
eqDPyjDJxHdVYWO8jh4xdhqNoVMfRY5jeCm+rzKbFlUJjNwLPMRusyojjvx2
hg9bwf8ljmA3EG+zpfzNGuEiu4lDB+AtNRwl2PDbFF+3wvtXFKJ/g3W2KXx8
dnLdIG2Y/Qotv41CADsKozainkODAmYBAP85Trcg7N/jdGH6OrSF/Q335hJE
lRj8+vxN8PLgiyPurnb49q08TMMZ7R3c1pISg9f1uXiT5dVC7ALcPX5F26gQ
L54fHPCDQuaAb5xOM+zwBkb/j3eX5wqBMJ9JkHMt5nd3d6NyMUWYtKlooS32
oyxJZIRyt78osyIODoPnCOPs+qfg+j++H33x+aE7qRp/ERZL6FqIbCqyZRlH
YQJbe5gWyywvYR8ucSsXMqHGRfdsz9JS5inJPkC4hg5A4gXKCD1DicpShwg/
AgeBfAIxXjz3iUGoA/ERCpxWDIRm0k2cuKxGcVoCYaL96+Dd6UlAHfZlimsd
BIEIx3BahFGJf1/P40LAyVoRGSZyGqeyECGf5xM8zxfmPM/7z/OhCJfLBKY6
TqQoM0O2iM+bRObFUIi7eRzNxTLPbuMJjFTOJeylacQki0uYOi5CLuE8k7dA
RPhjaQ23MMOJKFzCVsd9huL65Bh4bA44zrNkIk7yDE5/aHUM45Z7iMQ0nlV8
kg5FVOU5ThhmBQQAgCtnFJq4wWFIR2UHFmVY3MC5qDlppIm8iCeTROJfT5Et
8mxSRXyKP9kx0tQBM8YVGIdFHBnaIB00Qa3RxHcr2IXkHfZCJOFNsvqN8JpL
f0oAZBJPp5LmbiRH7BZwDIEMNDl9KGJk6GkYyaEYZ2E+GQr4GzYS5sRlFmOj
skpTYBHvzR7IEuouWV7AYqXAXSUIGWGWQxfEsihBDBAtfKhHj1OQ0AUM+Z9V
HN0kK8I0uYVeMkwCfIX8A1y2KHABY9Ti4ukK6PJ35NK4uCkQRji5xZlPBKzf
bRZPcLwKpKt4BtywWCYhoFjQeh1HoFPRe2BbxAQPIJCDAkYEHFg/KhjZCYJ+
/17tkvf3w1osOlbTgRGnUVJNcKcFNgHJtthc8ySuIzMl7UMO1FpdK0gkNcnM
WiLU11obVHzTJRWw8CA1xZ6etdpAcbmgF2jiyDMIUGuM3bKIS1av4JGQKe4C
+6CX0m7A4OoNmuaIEmtrt/i/E6ZBshoivFyCXilFkcGKy19hVqTrqs0KFyeh
BQH0u9FCxR+YtyoVQJCtNBPZrcyTcCnuQFcUQDlDfER/BBSTDB0ORQ0PBsrG
f6dTgpCqFoswj39jhrimaR4QN33gzRPsoAqefbB3y+DcwPqRYIkP7ySJI+D9
AbsG9CP0Lz0/4oP1K3RFpSYoJfwfhbfMgYT06DatH30Q16dKXIewb+RlBQym
Fu0DcPU3Z8HrkQIUFgGcESkqw6Z/AIdelmaLOCru7+tRFYTgdonNP4i/XF7g
MQbqER4ES9RHVgLh/9O7Nydffvr5S7uzaogdr70jV738oFAj9VNp61ESw4Jp
Xf3+3gBMFiG8ZZZVNKBHuUTQHxYhiMCtI0sCtlMWTgHmSTgZI3vWQyPWXxx8
eUhj4P+2JZQ57fxztZyHeOwWEQgsNOjgY8IHNgPm6RJRXoCmB4ZGseCN4Po0
uKZ1LajxX9TaXjAdi92/XBR7I2eFs2UR3s3YYsaFq9cBMO5XBDqwBCkfZyBP
evHM0ifhClQcxIvlbtXOIdTMINm31jZFO5Bp4g2bDkMRRTxD7SyRtzIZCXt5
rWk3ZvwWFa3gCpZANm3mEkcvdt+eH1/uDaFxVNEOC+OxbmDUlBVRwFFEkGTd
/Dhaq6AteI9xlLN2egyV4qUB0H5vKVCsdK0BgZ3KKGzMQdF3CkihFh1PQW3R
oEag+8BBPIlZ7UIARTUOFN44+4YmRUqMmMo78e7yhHdaRpm2+aJa0vaAcFi3
ALBF97k0FFqzcTU6vRKkl2ptqYGKJr/0WEkjRIeevTpIF2QGfaAq6bMNDXSR
4dEuxTG6R1AhgkUXuxfnr4/3bMiKLz89fHF/T5g8fQoGBWpYLCw4g4usZAqg
SgnHCI7L/T4/PPwM+BkbqQcvvziAB8gpiNmNXJG+VqBG5M9kJOgInAJ1MtIt
ua29GgbFz798+VwNhe/TDDVL3QqPXNB1PhFK+OhXFHz0UH2CRtRsoR/XFK7/
TOFPvQwbYfPZi8ODTbBxOJj1HMSM1FH+c8NBv8FVOnx5uMGgJ+dn9O/5pfr3
9dUJv7jgfy/x3yc7X4vrTHwHHDKZyMmRVn9AYU3NpmGze5xO0L7Mcs0luZSg
A4azPATz/hj2O1B2QSoBF3i0nJNWCYchyCiQ3oBEtrCYPK5Z40opbZ9yM59P
YOtK1QFAEr5ajLOkUEphAWAZmY4lAx5/rnic8L/MocWv+J78yRfoXbsIF6jb
njX4dEhuEdoADLvwAZihtufs/5butqQRAAfeqgnnEnqBgaPewZZRZFFM6iXp
iKwfg44I+kk6MQcMkBb2I2jEOxrYobDXgK59l2qV2GIg1BGVhqjm+AEdcDOt
Krb/fBCPUBGF9Tv2zZcLeEjnv+XtdAZ7cyL+FX4EdchRqVktZeF34udtnQQe
0vSc+pCGYRo3Z6fE9ssvD0i9en8kngKhArVEBftqvhpc6r955/YWQtF/cE/2
NaBzSi593CJR+i4TOF1RpwcpAjoSrmZdsTn7+HHZQTvgw8bldLbkHxDmUFx9
0jhs1/Z6Cp2u+LwDfN4ZYx0JcOIQAEwrGzrKPNlVcA4PjGE4ABbPKz5tcF71
oaq1Tz5VlZiQXhplFRiNY8sEIrv1kxrs4EhQN2WDx0BCUgSaNpPTiZgBeqqN
S4JqAoPJX0GLFjcxCq+li8QF9UXzlYQIrH/oimMmWTqTRSnYIQDTzSaMtuf2
8OdBMM3GSbuIgmoedtLAHKIaRwKGak1N7KMWqtgeGVdXJW+J2VzN1HflaDYC
C2bqjMbeIc9To1Qry6uzAD0b8A5FApYzQW86aIo93nT/C36A9aM4DsIc1oqF
6cgTeXI6/ikI8jubxsHC4lqWam5jOSWMvLtvAkTtE/Hv+u+/WS29xs6+UdWe
VLt1Jhwm+0a94oUoV7CJtPVRzEWuJe5SAXW+aGtq2CNAnvkE/bWlPXO7rcMS
2FQEX4vRaL/mGyQ87w+uk5AcJhYXnxmmhDOwRA7Agwf2KuVqpRUOk4S4ALaD
mrPlr/OwKtCPgT4VMHlS5Cf2K+NOQnHROSrIWUq8khGrsBtEXKHqkcq7dn2j
gGZKOPIwRmUhw/cNxw12d1xgOGxpxSlGMIyvS99JBT2Jb2iOyuQTVyWr6LC8
MCwd8yCo6FIiJSmO4pJfNi1Vg/cQwc3DW5zvWJYgFuQQBMFQdhr2nFI8CUCC
tY1hZHIKpUoYm/OrSaL9VuxmSiVvsbm8Bfo0ZgiDRLnE/Q/QyAHFOekxxr2F
9o7SSuLfpLe0bJ+8ASg6YqH2hGHTKK6tj5jsE94BSB3RWkohKVZ+8Hz0ApF4
/94KmoBmi/xV2Aym3WW0vdYOy5Xeb8nRRwxBPU7P3+yeAgssCQvLHHqj3Nt7
I3FMVp/FXB3OaiQ84iOR8UC1Qo2L1j4ENZf1q/191KBx72MNuoN7OwYAkjQo
aih9dmkT+SPhi4BbNvRacSSVVUt7PSAZFSeXP4EWC+Qc4V/ncoGLUD+4BgsR
rN2IHJl5VpWy8J/DcSRgSAw7mZmGqe373wyXs3SWo9Oc4l2wIS3D6EaWPKB+
t6iSsvvtJC4iUsJb3sk8R4FueVOlNylq3LBDlBnwntPotBun0z6UTrsxOm1H
SK+kCpR8hPVjc67De6+98min6haRbhFSC+XhABzB+pKwmkWtzhQSpBf25KhM
eMMLDc9S8gu+L+fAMrM5xfVW7Ies/fBA7WnMx4+tntA+CecsaEq2D3+KTvZF
CLLlnAXkulwzQaVznuBeicFd48XZBw1c0qNqibFRtkAxrKBwe0WrhaGIGLM9
KBiBrbAJe4OVp86eAHU6Uf4B3brRRoxXxkLsoMumYCayDKH5xFokdjzB7g/A
i+mKuoTjjAJgNe2GymlFpqN26w3KKAzqDX8wVAEnbeYOFHa2NQALyOEa1lDR
LcDqYhRaSA0JdqOfYzq47cWu4S6Cl2vISDrNTwqbYo+VAgCAHpiq6PImUrAu
rTVwWmsLRThy4XTDAz0mLUm7eYC8BpvmGgAoREmjp1DSvAuMiQKDLh08T9KV
2eMj1FyuPSTELi6BkfI9DcEO/H1S83zAuVbk5S2NIJD+oj0wZWZbSpLRZwG/
i+FIRvLn8WwGSE1AZ/tuBbwYgeKh1xxsSCDIOKuAcCA1Fcv3eKWOIzal7twm
tBtdkk2lkFMGVhtS5OZA1gSirBxXUh3xI4BXoH/moGApkIX6s2OmYHyRj56Y
gaerNy8zX9THaNNjDtQEVMeDVtVpSke0WPQr49jTNoDjouQO+JvT3hCI3FGu
b9uO1sv2fafJfhgYH8s6SWKCK0OiGk7AWgtYIAYC2Joz/FA/YVFEbxezIPBu
oC16LVPs3wD0YV3MZh1P6hOAsjWY6jW8ofJegZIyUA0CDXHQGHpb03EDy5Gb
uJuYevXBAFDo1M+br8CiVL8F8eRvTjvRaAoN2GRDL9VRVcWT/uZo9X3TtPoa
bRH9aOq9dN6bDQJwdW3KmtNob9CCp4XFm44NuQHJ/LRj296TJeTBPUl0NuvZ
mKj5kSlYQCbntbO7Ioz34xv7rd3N7rNJd7NwFtcJ63GLD6Ox6G1ejOBrsd8u
DlZam+MrsXwH/iDtzo/W+diY2fuMdpi0LoHTqbE3NFttKpLC+qVNMNljYv9f
j6h/2a87tKPqiaPw338McRQe5E3Fsa9nvziu7dkpjn7PrcTR776VOPrdNxLH
2l/GTngnf2ojP/xT8T0oeSrNaP8H5bVo70FjsFXHR7afrLXflT04RAcWXhQA
/HMdBiNniQoQFlVc6kxJPropZ80KWaEuJ6MQNKMWj7bSGuZwaqFHmrUvVG9R
kQal6E5HntiLDeKaZ2E0H4LN38h1s2wKSn9NA4aKWKL2zd4iwA1jH8GyKuY6
6vkZhlqHxunXgiUBUpZKnQaqVWKlxaHzwx5K4ZWCeTZnlbRYFaVcaJXcaIEz
tAh15AbzIy0ohTLwdHAbbK145vhzrmlN4G9rYY3Lg902VVGFCdA0Tm+zG/Jm
gZYF8wM1m72weJtEzNE/YCUnKHBk37QkYJK7YZlIy0U0XjmRV1AfU14XWZQj
oQ2eTRJVmUK1iuesLuJIJtVKhzxzFT1BppFogcEfwHY8OeRS6Awa5zQB61bx
ap2CETvpkY1JpDJGXMi3e4eRiRnHagyzAwO/uzzBB8iRGKEu5kpOcE20Jl20
aplC5MuoULnXsH8Ev4qZpPwgjt2rXQbf4I64rErzzDx2PfPez6PPZnusuAjU
cmKYQS0k4YoH7jjLEhmmfjdaISsq0fghlRXzyANYP2rmg5DqTSuAXhCsUWRV
aVNP6OdNUgv/XUdwp3kAZy2q0ccgfmMQTOkBFcFa7IbG73dR1qtFvx5ydcyp
1sS8c9DvVJ/dLbTtbqgJ7aobLeRuB9Gtm6zvSzrGN4/oS/qJbVDZITE8qi+V
5XpcJ2SYWHh9NrNHj9OBaYNRRjnoPuqonNJJos6CJQZksqowqS276pcXoxcU
irCciBpAMyPExMoMR4LtTJvdJEuflSbCXvtVOUwHaLBGUBvlKcZ5KBOSM9Ut
5ySFmDCxE+AXIez+7iF3N4+V364ODytohYmp0bAU7xpLmWqlYSR+lo3N2KTU
eRu9OQHqs1KfT9vsz0pTr0lZx0dNANXbtIW1ndW6PvJMzzbhuhA2MBraNrxW
gWZhe+QeZSmyJ1Ya4uZa7AmcGHmf3oqwrrQD1ZIYb9Fr92+EMNvujlipClqL
Ub5ZOanZH5QiOziKvtJaxZmykxsGo1H6wJMWE+d29oRSGMfEf1We1l4yhluz
kQDoU+J4VJyEXCzBpCAB0J5FlddBbF0z/F1okq8BeFFFKG94yXO1KYPTvIJ2
jnioWvIxzsH+c7xJv4/I2U859CL3X6tbIF0cfZ0174v0cscd7nGcKyHrVCNO
H0b9UmVuKXuDMpBb0nuHzq45tJvIiTJmm0+tYK8dR2MfrHHzDo3r1+IvdYhw
SCdm/qWNWMsbeWF0+INztVXIoFCg5URBxr0bR+SN/BllDIFRwdGAcDrVl6yI
IgqiMfs6GVr0Zv2IzRJ/TDP1KqBMauvth7YGoLso9exvblMDTr2uN+Wmu7bZ
weDPJ4WgfcFN/7HFwFPX2jOGPJS0O1iIlkQgu7XnZPO9Kk2caADbLbeui8Kp
9nXVr+3lA8buz4tqdKm5vq2N36xLE/X6+V37/GQb9F6jUa47WxuZ076QfOX+
iIsfr0+PxLO/PoMTBg7UuzxcLpXZT0mlX3z+5QvR6PTVTmeMZE2IxI6QmH24
4aHuTKzzvda+1UU5dc2Ga0wZv3lHMp3fsCuVzm+5LpGuO3bUETraMHK0XeBo
i7hRX9hos6hRa2CDfjbzX/91p9lvmx/j/X5wLOrBoagHR6IeF4h6XBzqcWGo
lijU2iDUxjEodS4+JJz0kGjSRsGkrWJJG4eSumfqy57wX7fInvfzvyN79s9W
stfXsVf21nbskj2/4zay5/feRvb83hvLXotOu+OC6lBnd7wxuzVZv62WP+Ng
c1i4btmvv3bg4KuufsM+rdVHok9h7UDCyFzjZaea2tq61lB9yVqrnLYK4+Zi
tKZjm0q6o90H7eGLFjfBlsELm022DkNsGYXwXeJbxiC6Adiei64AxDbxh43D
Dw36Ndr3RBIeEUh4SBxhozDCI6MIjwgiPCKG8IgQwjYuua1FrcEZvRza5lqz
+2/mF29xi6/xijcOCQ9H+7Hn1TZuEraa8TrmNJ4FdA8UrWN1HXOdJU1t1bVf
rPOYc4EQ5JKvBk27d4St+ebmU1M7ZfPLlWSlo0Dp7EP/fuv7HRa5AM57vOci
DkYHr3a4qFqxxNt4gypPj7DfEaXyFke/LpKjtDgiQW3CG2BfdVEYKPMKN3S+
CezdeH1PJFdtB1S9EDvfN7tY0Ft7mou4dXe70iC1HdBlrpOT4/NL4dZuJAzR
IRpGzAODn78XP8vxEfz6Z108DAUC64LdyLyu2Xg3U6Uav2begX5vY6y7KP6M
heXK7MgtBvn1Drfj67cI39RHbJ6Xf24pfuh3b1Q/9ID0lTv0odn1Dj1Q3cUN
fUB2jUAPUHtdQB9IXSLRA9FaCNGHYCohegA6ih36IEx1whZ6+BUJ/f5uSUIP
SFfhwa+ZKfkGwbLmYcoMb9xqaC1CZ23r1LPe2keM4zVfj8B+GMfZoDoHdeut
0KFAn2TLVR7P5qXYjfawdt9Lvkh5nVcFF/BSIbQiS3kHN8GsCd3/otqBhc6V
jyiRWxwniSCo5NHHIhkTNd47aSq86upZmBaGAQMmBj4ZA8fmdJdnUQxVZauc
uuPvcAAgNUzseCg4qX8RlxjSXlZ5ASuEGTpc7q6o6OI29VcES+JIppifQ5Uw
aDtRlRw4UPKObjlOxHdXr2GToLbUHa9VTDGbyy4mcTiK9PRr0j0rxFs5CxOM
+gOsWFPvHdXi4pw1av1a35Kk17t6CysRiLRKziqUA7z4uGf4AmauDwJ96dou
p4OEwdQojMaqwgavYBI8GV0wIC4LmUzVVdEEywkh3hidx1BozYFYaQVL+hbi
2flPV9fPhvwv+o7x93en//LT2bvT1/j71Q/Hb9+aXwiCanX1w48/vX1d/1b3
Pvnx/Pz04jUDgKfCeUQwnp0f//KMF/XZj5fXZz9eHL995l+4DflKz1hyFhwc
PCUxK8HQF30og+K7k0txcCh2kQwvDg6+3ONfvzj4/HCPbqjwYFkKQkd/asLR
zR+M/mKmI9AsCpe4z9lVMzB8POKtgS7N4hqhfAXPPw+eH6pD0do08NTDZA9K
SOD2o/qI1Dyad7jUfXhq/xpQcDDLSr7pwAgJFLrCCi0BUwVUXBlAvaobuC7o
thaWGkrOBKcNYa4fdIzWjbhpYWemPKM7u3YFCp0sY90I1pOsiVZH1d8r8P6A
wqoxsdUwgsPyjgZqxmkfCcbStQz8dJfBK9MOZc5c59sxjyk1wHR8b4El1xOF
P5zH6oUeIrAyEtxmQmdCBiaXZwp8LV85re590KRecokMC/orvyHbNi0vjO1p
v6tHuu+YPnvbPBpYxmVjimOqn6K10CMHzitrOP0bX73zydCxrhSvRgysta2r
d12cqvqjdI8QjhK92GZ6NDk79GSj3z4mFkQnTleXx6wyIrA/wYGZ8x0q+IPj
8S8O58DgDlVU/m1EGzxuegcvMYyvameaN6oUh0qewmPdBnKmbsxldD/WypOe
ZJLTcFkf0VD5biN0cbkB8S9MwRiV6XZxaslF+5ow82OMrn6GJnWBVVeq3PTX
tEZSB3ZKjTb/37sgmyzbMroP0gn11RB7uOZBRVYsIPXF5bO2QivIerpsnXnD
+UgWkLH0q6t0ALTaWQAYO1un4uO5Z3jB924tIFhPI6K0kJQrHhKI60uzhG0M
QGulzH5rCZch6GsDDLIuF0baLV7Q/73fgUV0j6zO022zU6un0LJ/RDk++f5j
6swqfsEFaalT4zyyAa4/jprlCxHEwDpyqM4e+wst4SIlgZ7qk8XVEVz62qRt
7/VouqokqdjWTDR7mFwpVT4TM5n0NQIrtxWrnFRpIx9LwcCNke7z6upO3hUG
XSjFrrNktC7a23XcpHeJu/cCSq9lDrLYvnF43lvjeXpC64D+BtSsyIxiyMdH
Ax0DpMlDeK+Cy2PXnNQrpCSiXQl7lvQWA/GnGnXnlcri6xN1nzSuDtFJn+2O
9XU7VbuGsol24k/ExMHWT4Ja+fVKGytkH3n2QHYcbQ0Hl/ZteF3AQ6bNq+Rq
92qMbwXcLOLgU5056Gh1HXpREwu7OsRCbQiqKJlmWAV96GokqgFOvCrsJF7D
3rqppaYStjrj8SHoQt/1GLtanMmv7ES5qAr6XtDEQbqXsRrL3cbRnexWl8Fo
7tSbr7ii8qsGac1Mmi/CMX0IJGmVl/rMckqn9hiuPY03PK8WqoCyDcPXAHQc
uV+uTppll1tSgi1NABdR2QJrdQCX+5yqGORJoXrD5GvzT1daR/tYWmOHNfY5
RrGNI2umU2SycpfXzqi9Xpat17jq/2ZSqk13p4hZ89C3B2H1yTUybFOSeLJ+
3dShfAFtsqjfdzPODG3Oqamg9TJHb+mwkVqZtJXuzwouT7nZSdOah9M7qC5w
Us+DevaO58l6u8drM2q6tZhRV7Qq1tkFokx9KAWFqkS1bAgOMv2T335sd1TH
xagLr6yVL1O6yFwAo93iDsYx39DwpE033kjW3ipZc0epPWUNGRvUEeSBJ2FI
T/2+T8Y8gmCi4npiIIqNovjOx0SsC0YeTbBi1Nb0cAfro4qlC1uvut2I3Qhs
bSqopLgGELekFfEnLnCVL7OigWWnzcA/j7Ac1Hw2tR/4x/Z93ndS0/dKriXp
htZFu9eFKIGelybtXGXNJ2u3n3RTT+l6orQaDWtp0m5AlFz6Kp5gtqNdzaqx
TD06Jf902hL9aCFi0/qeU1Drty0S2WFOEH52lS9qSded4tsmvzUIalBvNSzW
Y78d/i3dGyaGPQV08PZNo+svZ4Jmp95eC2rb3zc7udtOF0f5sRKwt/Lb5G31
LHNzBjZ0kx4vjn39oh+FC2Xgu8uzGQItypirjqw1T0wVyLYDiooTNsbVx1/Q
poSviZ15YzgHK518W9VAsnjWsGG3Wt7Hhg9SyPEYZPr5M1Oo9WniLbGK1iVK
LQYxoAZrNXAzDtaNCamAC340+NWWo5e5XX3wAXi4lsDjkPFMBrBRtNHQRKPB
Ols4vxxLWtUK2jd31CP8+IEy5g0ELhNZLZUGaZ9y9hR7nCZULJOqDgW6PNFG
CuaZF3oivzZX4izYt94oIemebiExr1fQs8XdpDClmp0PwDRuxxTrRFAVUCqm
7uLrAFAlRLfG16IslwB4CF1TC108N+kbEDnWdprZqLs6TYPspmBIXUV0TPWK
zWwIP+lOe7xSZagweSvDMFKEtaE2Wp+PPt/GSv2vTtf3fjYcZ9uKerfTrM3l
vVE8wPWT+Ribi0APwZkiWwZCR8laA8UpXYtLSueVlZaI6xe27VobzVTjsclp
u72yt8YV27zHt14lacRkdUlaS7EsTBzbt8a394toFahlIE8Hcnwi5lWXXts7
rB+XXINAr/VuQvP2/8mS11VurD+alvvAftn099h5Q03+ebhO633yECZthu1V
ZDszd8wnbaLQcly2qX5mOf/nVNp8Gdn3udR86OoG/K7nbVJeWtJdNs93sSrs
5NlCf13bnO02c6pjxHycw+a3Tm57lJ9oCx+R50ZkHbbzwtoaWg1QrbWPFfxk
TqHqIWIhwrqgYhzVVYdS67KbLorIf9SRQP2JsGbIRl2fc3lCny811HV468KM
1LgrVcIkS5iMMm8x/Rtmr1pJbGa4AWLQ9vdEq/4v31ayQ6fax77YZPU5JxVL
4gCmZpWbKPseduve4HbHyUZjNPNS6+e0xejRO3OCOj05uN+sveq2bn2v3XpY
BK8Qu3gRodwT6rM/uZzhl2zyQn0xRM3fQHE+jUtfGBuJnzmFUpea1cInQ9io
rPYGxiV/VJ6VLfsjV3bt0lkeplUSksa1SzmXQ0zPzGub6uKYPyqRZKqs7G4K
MzrFT3Smk33M2nf+Gsf8gQhoGSZ7Bor+0IQzd66oa9LliUQjtR38Pru8/W1g
/nJbXUlNZYX+g+7m9X8bMl1Txivh9nEIxEchfXtG156zYDi0W1sqDpe6DBOr
v2ZlrBtXV4sb/YOvgque9Nw67dZZ2nXfjRdKa+t1SpxKK7zjy0cOifkQ+Yg0
bXwdx+r/J1cxdlTobo25obWsYfQtrzpc6m+ck07A3+QxhRxbP1CrcLTJwjAm
/ycY01ibnUfhht7gKFssMJyvP5nifSHc3jDbwrkdF4LWhG9V1b6iJYX1HyuD
kxmwmVHbk8FJOXOT+kOi6pljdKhkO21mrFEB7XCNWQW7TkK/bWkubJgvUndb
N7165/90XuvHzGFtSe5yVb1W1B1J2UBxbdz0aNOQ18Sb+gbRjdsyvczLRqJX
v5q8PtnrUXtL2L+RbJPupSNKvrPXCuvYfLNh0lf/qCaA1L3kv1OGmTfPzRLN
7tuKUdAnxjcsRmHd7R082eG2eOUaVIH8BhT6r8hbMBDWm/ZCFd/WN1FHVMrh
QTUrxDXK92aVK6xaEL31K3bEdhUsTC2JHbuQBT+lh1sVl/ijtsQftSX+r9aW
YAHbqr6EUnh0+IzLuHBJ55aSrsL+pA/P8I/KFH9UpvijMsX/z8oUWi/VNkCr
1WGDGejgBX3ECm0EbXjo77HnMld3MOEFHcfuCMpQDdSnxdUYbG74RoYz9sWp
dcPTgV6DNx/NMlpgF+gmcLXNGQBsD7jIsx21BcrcoQNrA9bKBw747vUWQ1w3
r3oLx+ZujIRfb0mCxw1IMPwr5n3jOlkYrQ6NNWzVcY0eoVoK+6hz6ODgZQDo
kv/Fmqudi9HhZ5nwF7P922/mzM0lSCvtAqXAkO1KHLxUENSQ3Wi9OAy4uMPG
SD0cqxeHGgQN2YJUI/Xk4YknYRLmizqnJ6TmcR2bqVPR3MS4JkIwPCX79CFk
2nQM2jOYIridp+KOvwj/bnIAWgfnBr/HyHG6ZmRq8DuMfBfmaZ8LAsamMys0
LT/q8Em4knmQo3es/RCq0TjrztsiKAKh2N5RfejgcWvAWJ9IVG5D6wPqpoaJ
Ys77ndZqlIDoVl4Asro/ni+AbeUujwBr7lwHaYWfeKLvgPJHu7CFEH/98/Fk
Qh9JWjhtI6ft1wwOVNMqb4eEmpytItYfZvL0qLqcXhHN5SLkzGk0TijMhU0l
5zYodSukuBb8eRuHZkGtC3LLPCuzKEsKy/N5ffLjxRvx/v0/geL12Qv8Qig6
Qd+dXtkvvnh++Pz+nr9ig7mMYJronsxFsY56RGjhlHmYFlQrk94OjR1j0piD
MgvADlO85nWLCyahFFdzCYKze3X1w16N5IsGLgZbg8wP19eXVw8a9/rtlZ70
4eFnMJBeND1hJrK5qcN2oerxKdFvaQeCFjJMyVAEXgQhikoNABcTjYM4wsC4
AW8TH8SWb9zihQJp3SQDk0oFmPDwD2/BoKcL9G1A9KLXyQJc+QgnAETQ89Nf
AbO+z8p5Ihl90Uh9HE/zqM3BJrx+l/Mncvcj/NArfyAKthP+bO5uPJKjob6o
hUI7rAMwdFzLaVgl5R6trP76Lo+uyjFpUUMCgC0W4/0bnOptlaQwtXGi7NhF
fRdRprdxnqVk4I3Ezzl+HdWiw64czQApsIlLdfV9T5moLgLa7AVaLvnmaKmM
T6yuQp/qQ4GbhYQSXw7CPEiNRj3kqLEl2IbsF0h0xUmff/ny/p4WBD9ZS9mH
kf78MH9uDXgA6/AW+jaq4yfxdxNa56usvhMBazQhiNY825b3YxH/TFXBqgrl
gWEfgREkxEfLhloX3MZmshxS+JvXZ4hj2t9UbF2wragsPjqZn4qz44vj1s3f
3t/t7Bz89HPD922G1O5qHBevPRWqJ+irakt8/uK52qno40t4Ah7ps7v9+2DG
E03ttnFFU3f2QesxJrdRrl7Ac+CRVMHVTo8jccyzoC8dblUteu10+GB/5KQs
IG1Ts15/9Ak+2QmCADS+6IZZ5zi6SbO7RE5mJDikRfGeLCdfDeiGK2stLjPR
BxHBoMGbAXBwIC/dwLQn2V1KjPHfEOpgtwCuAAA=

-->

</rfc>
