<?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-02" 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-02"/>
    <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>TIM</organization>
      <address>
        <email>fabio.peruzzini@telecomitalia.it</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="01"/>
    <area>Routing</area>
    <workgroup>Common Control and Measurement Plane</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 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[
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            -> /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
     +--rw monitor-tasks
        +--rw monitor-task* [task-id]
           +--rw task-id          yang:uuid
           +--rw resource?        -> /performance-monitoring/resources/resource-list/resource
           +--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*                    -> /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
    +---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
    +---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>
      </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.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@telecomitalia.it>

     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) 2022 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

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

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

    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 2024-07-07 {
    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.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@telecomitalia.it>

     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) 2022 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

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

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

    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 2024-07-07 {
    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 1334?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was prepared using kramdown.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
