<?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.17 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yu-ccamp-resource-pm-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.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-00"/>
    <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="2024" month="July" day="07"/>
    <area>Routing</area>
    <workgroup>Common Control and Measurement Plane</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 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>
      <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="16" month="March" year="2024"/>
            <abstract>
              <t>   This document provides YANG data models that describe performance
   monitoring parameters and scaling intent mechanisms for TE-tunnels
   and Virtual Networks (VNs).  There 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-12"/>
        </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="2024"/>
            <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-10"/>
        </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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
Q2J9acUXevbTVqzKzeNqs9b7GNGt14TC/OvRVxvO3SlU5k1QUWhFZb0Gplnh
v68FjR/yRWRfoNRTo0tE+MVQwWQe+bKOtkg7sspU5dlcv6LeWAsO6yp1ZF5x
4zJjNyu+X6hrmzCXLzzKJnPnxc+1ZOuhGW3rJ3wFVaHqi2Jhz7pAaRzVVbxS
69aoLjLKX+ojVP3KvdZRlrqJ2uQVraRqwOuR19VOqXlXaopJTjF5f561bV+7
fNpFbjPXjfCD1r83dtY/fC/OOX/WhwvzzTiCE42x7BRgbFa+ibrvaMG6krut
TtpwnFa2cf2AhJJGoTtJa3UsCgXU2iuh65d96JagI4iF2ME7KeWuUG/ayuUU
Xx6VF+olPYoUNRjnddT0Vr+B+IUTYXV5Z71BZQhyzWpfA6GOfZWpar9Zzi4Y
PM3DtEpCMut2KHO2j1m2ueXanR/xq1ySTBVz3klhUif4Ytx0vIc3N5xvo5hf
ywItw2S3BqPf7+LMnwtZm/sSRKaBlhq/n3Kw38vNb02sqxiqDN8/tg6w/mlu
+5pIrTqKH4pWrEzpFVC6BKQNxKHj2pKNuPZlmNgANH9jAce6bOPgn2RJbhsW
z4or1R4zyFE3fmN787XTbkKdvaiSQW/4rppLdNZBH5bKjXdX2QD+7JrijtW+
wkZvm0JrN8LW118u+L2UfC1BvTrrlVk033ukFa4OgRjI+J+Kbx2/uVOnbhzy
jrL5HLMj9IuOCp8t1DitaR6Dd10kW3PsreptFt685D9iLi5zZytZelUuLmU4
juuXAavfHJ9HpUZqJ2etqemeXplVsauVrPN4zWUe8275VR7Waiv3H5Ou/MEz
kz1pdw2L0j8HZzdtZCo3rgN57fJ1x3ArB9KtvSl49eNGCt4a43yzLLz3lEbh
OtGzXR6ePmhrh7btYy6HpTbPxls3uDlXW8ULv2cGYGvWWyQC3vqqq6AI2LS6
inXTHGwKbouVAMDWyK/Asfiaghs9YT3pqLxChUjuVHlFDHH/Y0+r/kpH9RW7
jMnqGiz4ZasyLHUhFOxal2Ph39XPW5ZG+VgYpQ30Y2GU/yeFUXgrblccRdlS
+niRixVxxXd/aXXrlV96ph/rqnysq/KxrsrHuipuXRXL4NX+ht/LsWH19GEN
vQQP/RHt5yDKHCLO1f1eeMAqvTmK8pgD0H32fQd2bzxOjYPA+Yl1hbg5RD2G
eflebVV2wm+OoMShAaF8DxOmMIOwF7cV+tylewYGtpXWHXA5gK3GGTYLEAg3
FtAaDl8LlQTvOypBaVc/WDO4m97iD7usYbuOQg8I1/YKBqsQCPafBIA3RYvs
aTtpLl1BoXGVqwSO5pVsrbtzCdubBEcp8IR7KfafaBBq2JXYwR7nyiTb4HZ3
5B4fGBg0rB+3ZnrPeyT3hEmYz+tEqpCax9bhVJ0R2EhSbKMFOFCS1Wq0TKuO
oVeNqOjvpAM1sZiHv9XJFH4UuMnvNX6crh2fmvxO49+Eebo6TAIYkCoMTdsP
jkQSLmUe5Bjh69BqFjKn3Sl0BEcgHDvqq3UY6vIajvXWVhUFJX9a0tGjqdJj
WFdpFk/dV0B4q/AERQY+XJCCXXknVMFOAlcBW+L75uilxPwGQab8v391NB7T
G9vmTtvIafsNgwPjt8r9kNBItA3Q+i1xLQOtLj1ZRDM5DznrHT0hOuvDppIT
Q5QdF9LZHny9jkOzltY1ykWelVmUJYUVtR0evzx/Lt6+/RMYdJ89xtcVYwD3
1cml/eCLRwePbm/5lVqYWgoukO7JDBTrs50IfakyD9OC6s/S077xl0zOeVBm
AXh9is1a3eKCSSjF5UzCztm5vPxxt0bycQMXg61B5sfh8OLyTuMOX1zqSR8c
fAYD6UXTE2Yim9tZ7IKqHp8S/Rb2cddchin5pMCAsH2iUgPAxUTXI44wYcCA
t4kPO5avbuPVEGndKQS3TR2joaUQXodxQnUbfED0otdpFFzXCycARNDz068k
tF4WzYk1Gb1eTb2pU/OozcEm6eAm5/d170X41ml+Wx1IEn6H9048kIO+vqWH
O7VfnymRNpeTsErKXVpZ/SpwHl0VG9NbDQkAvl6MF61wqtdVksLURolyluf1
BVWZXsd5lpIHORC/5PiqZosOO3IwBaTA8S5VaYVd5QW7CGjXGmi54NvFpXJv
sQwQvTcUN9w0JJT4FhhmnWo06iEHDZFgu8pfINEVJ33+5ZPbW1oQfH82ZXhG
+l3o/O5H4AEsc13o+8pOWKYtTWidL7P6Lgus0ZggWvP0Le+HIv6pKvFWFSre
w3EIs5EQH7031LqgGJvKsk8H/7w+fRzTfsGrd8G2orL44GR+IE6Pzo+8wt+W
73beEr6HvhGJN0PqODqOi/fYCtUTzFklEh89fqQkFWlrVHuHWmv7I2omQE7t
tgmQU3eOi+sxxtdRrh7A78AjqYKrQyqH4ohnQa9d3aoY+9rpsDZ/z0lZQHxT
sx5/8AnevxcEAVh80RWzzlF0lWY3iRxPVdwLTCeWyXL8dY+uN7PV4jITvZ0V
/B28pwGKA3npCqY9zm5SYoz/AxztYJ2MsgAA

-->

</rfc>
