<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yoon-ccamp-pm-streaming-03" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PM Streaming YANG">A YANG Data Model of Performance Management Streaming</title>
    <seriesInfo name="Internet-Draft" value="draft-yoon-ccamp-pm-streaming-03"/>
    <author initials="B. Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </author>
    <date year="2025" month="October" day="17"/>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>performance management</keyword>
    <keyword>streaming</keyword>
    <keyword>measurement</keyword>
    <abstract>
      <?line 45?>

<t>This document provides a YANG data model of performance management streaming from network equipment to clients. It defines PM measurement methods, event notifications, generic PM parameters and streaming subscriptions. Additionally, it includes a YANG module for PM interval capabilities discovery, enabling clients to understand supported sampling and measurement intervals before configuring PM measurements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-yoon-ccamp-pm-streaming/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/https://github.com/binyeongyoon-ietf/ietf-pm-streaming"/>.</t>
    </note>
  </front>
  <middle>
    <?line 49?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With the rise of AI-driven applications, network digital twins, and increasingly dynamic network environments, there is growing demand for performance management (PM) streaming capabilities. PM streaming enables proactive issue detection, allowing network operators to identify and address potential problems before they
affect service. It also helps optimize resource allocation, ensuring efficient use of bandwidth and other network resources.</t>
      <t><xref target="ITU-T_G7710"/> provides a foundational framework for managing transport network elements, addressing requirements, parameters, and measurement methods for performance management. However, <xref target="ITU-T_G7710"/> does not define YANG data models or specific protocols needed for PM streaming, which are essential for modern network management. To support PM streaming, various IETF documents and protocols <xref target="RFC8639"/>, <xref target="RFC8640"/>, <xref target="RFC8641"/> can be utilized. This document provides a YANG data model for PM streaming in network equipment based on <xref target="ITU-T_G7710"/>, demonstrating how to subscribe to the YANG model using the IETF push model.</t>
    </section>
    <section anchor="pm-streaming">
      <name>PM Streaming</name>
      <figure anchor="fig-streaming-architecture">
        <name>Streaming Network Architecture</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="280" viewBox="0 0 280 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 8,128" fill="none" stroke="black"/>
              <path d="M 40,64 L 40,96" fill="none" stroke="black"/>
              <path d="M 64,32 L 64,64" fill="none" stroke="black"/>
              <path d="M 88,32 L 88,64" fill="none" stroke="black"/>
              <path d="M 112,64 L 112,96" fill="none" stroke="black"/>
              <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 224,64 L 224,96" fill="none" stroke="black"/>
              <path d="M 256,32 L 256,64" fill="none" stroke="black"/>
              <path d="M 256,96 L 256,128" fill="none" stroke="black"/>
              <path d="M 8,32 L 64,32" fill="none" stroke="black"/>
              <path d="M 88,32 L 136,32" fill="none" stroke="black"/>
              <path d="M 184,32 L 256,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 64,64" fill="none" stroke="black"/>
              <path d="M 88,64 L 136,64" fill="none" stroke="black"/>
              <path d="M 184,64 L 256,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 256,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 256,128" fill="none" stroke="black"/>
              <g class="text">
                <text x="36" y="52">OS</text>
                <text x="112" y="52">NDT</text>
                <text x="160" y="52">...</text>
                <text x="204" y="52">AI</text>
                <text x="232" y="52">APP</text>
                <text x="116" y="116">NE</text>
                <text x="16" y="148">OS:</text>
                <text x="76" y="148">Operations</text>
                <text x="148" y="148">System</text>
                <text x="20" y="164">NDT:</text>
                <text x="72" y="164">Network</text>
                <text x="136" y="164">Digital</text>
                <text x="192" y="164">Twins</text>
                <text x="20" y="180">APP:</text>
                <text x="88" y="180">Application</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   +------+  +-----+     +--------+ 
   |  OS  |  | NDT | ... | AI APP |  
   +---+--+  +--+--+     +----+---+ 
       |        |             |
   +---+--------+-------------+---+ 
   |            NE                |
   +------------------------------+  
   OS: Operations System     
   NDT: Network Digital Twins
   APP: Application 
]]></artwork>
        </artset>
      </figure>
      <t>PM streaming is a real-time method for measuring and transmitting data to monitor the performance and health of network devices and systems. It provides valuable insights into key metrics like errored seconds (ES), latency, and packet loss, helping to optimize networks, detect anomalies, and manage faults proactively. Unlike traditional periodic data collection, PM streaming delivers continuous updates, enabling faster, more responsive network adjustments.</t>
      <t>Using telemetry protocols like YANG Push, PM streaming allows for more frequent and detailed performance monitoring. By integrating this data into AI-driven analytics, it supports preemptive interventions, enhancing overall network reliability. Additionally, it keeps digital twins synchronized with the physical network, offering real-time insights for predictive maintenance, planning, and optimization.</t>
      <t>The procedures for Performance Management streaming between a network node and clients such as operations system (OS), AI applications, network digital twins (NDT) involve continuous measurement of performance metrics on PM parameters using three methods: counts (tracking event occurrences), snapshot (instantaneous metric values), and tidemarks (extreme values over a period). Clients can initiate the process by sending a subscription request specifying the metrics, measurement methods, intervals, and filtering criteria. Once the node confirms the subscription, it collects and aggregates PM data based on the requested metrics and intervals. Notifications with PM data, including timestamps, metrics, and measurement methods, are sent to clients at each interval via protocols like NETCONF or RESTCONF. Clients then process the data, using it for real-time monitoring, historical analysis, or triggering alerts based on thresholds. They can also manage subscriptions by modifying parameters or suspending them as needed.</t>
    </section>
    <section anchor="pm-parameters">
      <name>PM parameters</name>
      <section anchor="types">
        <name>Types</name>
        <t>Performance monitoring (PM) in networks encompasses a wide variety of parameters that reflect operational health, service quality, reliability, and environmental conditions. These parameters are used across many technologies, network layers, and functional domains to enable fault management, SLA compliance, trend analysis, predictive maintenance, and operational optimization.</t>
        <t>PM parameter types include but are not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Classical transport and packet layer metrics: such as errored seconds (ES), severely errored seconds (SES), unavailable seconds (UAS), background block errors (BBE), background block counts (BBC), delay, jitter, and packet loss, as defined in standards like <xref target="ITU-T_G7710"/>, and others.</t>
          </li>
          <li>
            <t>Layer-specific metrics:  </t>
            <ul spacing="normal">
              <li>
                <t>Physical layer: optical power levels, laser bias current, loss of signal</t>
              </li>
              <li>
                <t>Data link layer: Ethernet frame errors, FCS errors</t>
              </li>
              <li>
                <t>Network layer: dropped packets, route flaps</t>
              </li>
              <li>
                <t>Transport/Service layers: MPLS LSP statistics, OTN TCM/BIP counters</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Network environment parameters: including temperature, humidity, fan speed, voltage, and airflow. These are essential for equipment safety, energy management, and predictive failure analysis.</t>
          </li>
          <li>
            <t>Energy and sustainability metrics: such as power consumption, energy efficiency indicators, and cooling utilization, aligned with emerging sustainability standards and operational efficiency goals.</t>
          </li>
          <li>
            <t>Security and integrity parameters: such as pointer justification events (PJE), synchronization loss, or intrusion anomaly flags.</t>
          </li>
          <li>
            <t>Application-aware or SLA metrics: such as service availability, throughput consistency, and application-layer latency.</t>
          </li>
          <li>
            <t>Mobile network-specific metrics: including radio link failures, handover success/failure rates, RRC connection setup time, PDCP discard rate, and throughput per bearer. These metrics are critical for monitoring the performance of RAN, core, and edge network components in 4G/5G mobile environments.</t>
          </li>
        </ul>
        <t>These parameters may be grouped flexibly within the YANG model using parameter profiles that reflect shared characteristics, purpose, or applicable network domains. The architecture supports extension through identity-based typing to accommodate future parameter definitions introduced by standard bodies like ITU-T, IEEE, IETF, MEF, and TM Forum.</t>
      </section>
      <section anchor="profiles">
        <name>Profiles</name>
        <figure anchor="fig-profile-tree">
          <name>Parameter Profile Subtree</name>
          <artwork type="ascii-art"><![CDATA[
     +--rw parameter-profile* [name]
        +--rw name            profile-names
        +--rw pm-parameter* [name]
           +--rw name                 string
]]></artwork>
        </figure>
        <t>The YANG model defines the concept of a parameter profile to logically group performance parameters that are commonly measured together for a specific operational purpose. Each parameter profile is represented as an identity derived from the parameter-profile-name base identity. These profiles serve as named collections of performance parameters and are intended to facilitate streamlined configuration, management, and reporting of measurement data across network elements and management systems.</t>
        <t>The use of parameter profiles improves operational efficiency by allowing operators, applications, and controllers to activate or reference a coherent set of parameters using a single profile identifier. For example, the <tt>itu-transport-maintenance-15min</tt> profile may include parameters such as errored seconds (ES), severely errored seconds (SES), and unavailable seconds (UAS), which are typically monitored together for network maintenance and fault detection purposes. Similarly, the <tt>ietf-qos-ip-24hr</tt> profile may include delay, jitter, and loss parameters used in service quality reporting.
Parameter profiles support role-based access control, operational alignment, and measurement policy abstraction, enabling network operators and analytics systems to tailor data collection and reporting according to the needs of different users and services. The profile abstraction also aligns with <xref target="ITU-T_G7710"/>, which identifies multiple classes of performance monitoring (e.g., maintenance, service-level, and compliance monitoring), each requiring specific sets of performance parameters.</t>
        <t>By modeling profiles as identities, the YANG design ensures extensibility and vendor interoperability, allowing future profiles to be defined without changes to the core data structures. This approach promotes consistent configuration and integration across multi-vendor environments and supports dynamic service assurance use cases where parameter sets may vary by service type, SLA, or operational context.</t>
        <section anchor="naming">
          <name>Naming</name>
          <t>Parameter profiles are named to reflect their operational purpose, origin, applicable network domain, and, optionally, the primary measurement interval. This naming structure supports clarity, modularity, and automation across diverse network and service layers.</t>
          <t>The naming follows this format:</t>
          <t>&lt;source&gt;-&lt;network&gt;-&lt;purpose&gt;[-&lt;characteristic&gt;]</t>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>&lt;source&gt;: Standards body or organization
              </t>
              <ul spacing="normal">
                <li>
                  <t>Examples: itu, ieee, ietf, vendorX</t>
                </li>
              </ul>
            </li>
            <li>
              <t>&lt;network&gt;: Network domain or layer
              </t>
              <ul spacing="normal">
                <li>
                  <t>Examples: transport, access, core, ip, mpls, ethernet, otn, wdm, flexo</t>
                </li>
              </ul>
            </li>
            <li>
              <t>&lt;purpose&gt;: Intended use or function
              </t>
              <ul spacing="normal">
                <li>
                  <t>Examples: maintenance, qos, availability, sla, compliance, analytics</t>
                </li>
              </ul>
            </li>
            <li>
              <t>&lt;characteristic&gt; (optional): Optional qualifying information
              </t>
              <ul spacing="normal">
                <li>
                  <t>Examples: 15min, 24hr, high-priority</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Examples:</t>
          <ul spacing="normal">
            <li>
              <t>itu-transport-maintenance-15min</t>
            </li>
            <li>
              <t>itu-transport-qos-24hr</t>
            </li>
            <li>
              <t>ieee-access-availability</t>
            </li>
            <li>
              <t>ietf-ip-qos-24hr</t>
            </li>
            <li>
              <t>vendorx-otn-sla</t>
            </li>
          </ul>
          <t>'transport' means that the profile applies to multiple technologies (e.g., OTN, MPLS-TP, Transport Ethernet, etc.).</t>
          <t>The 15-minute interval provides granular, real-time monitoring, allowing network operators to quickly detect and address short-term issues such as spikes in latency or packet loss. It is particularly useful for ensuring compliance with Service-Level Agreements (SLAs) and for managing highly dynamic networks where rapid changes can occur. In contrast, the 24-hour interval is used for long-term performance monitoring and trend analysis, helping operators understand overall network health, detect slow-developing issues, and plan for future capacity needs. This longer interval offers a broader view of the network's performance over a full day, making it ideal for strategic planning and infrastructure maintenance. Together, these intervals enable both immediate responses to network conditions and long-term network optimization.</t>
        </section>
      </section>
      <section anchor="transport-common-pm-parameters">
        <name>Transport Common PM Parameters</name>
        <t>Metric value of PM parameters is measured for maintenance and QoS monitoring
over networks. Quality of Service (QoS) parameters are designed to assess
the network's long-term ability to consistently deliver agreed-upon service
quality to customers. They primarily verify performance against contractual
obligations defined in service-level agreements (SLAs) over longer intervals
(24 hours, monthly periods). By simultaneously measuring both directions of
a bidirectional connection, QoS parameters provide a holistic view of the
sustained quality experienced by users, ensuring stability and predictability.</t>
        <t>Maintenance parameters focus on short-term monitoring and detailed analysis
for operational reliability. Maintenance parameters, over intervals such as
15 minutes or 24 hours, facilitate swift responses to intermittent faults,
bursts of errors, and subtle performance changes. Maintenance parameters typically involve unidirectional analysis, where each direction of transmission is monitored independently. This unidirectional approach helps network operators precisely pinpoint faults, troubleshoot intermittent issues, and perform preventive maintenance effectively.</t>
        <t>Key PM parameters focused on circuit networks such as OTN are listed as
follows. Additional parameters will be needed for packet networks.</t>
        <ul spacing="normal">
          <li>
            <t>ES      Errored Seconds</t>
          </li>
          <li>
            <t>SES     Severely Errored Seconds</t>
          </li>
          <li>
            <t>BBE     Background Block Errors</t>
          </li>
          <li>
            <t>BBC     Background Block Count</t>
          </li>
          <li>
            <t>UAS     Unavailable Seconds</t>
          </li>
          <li>
            <t>SEP     Severely Errored Period</t>
          </li>
          <li>
            <t>PJE     Pointer Justification Events</t>
          </li>
          <li>
            <t>UAS     Unavailable Seconds</t>
          </li>
        </ul>
        <t>According to the types of the measurement methods, purposes, and time intervals, different parameters are used. The following three transport profiles provide comprehensive coverage for maintenance and QoS monitoring across different temporal resolutions:</t>
        <section anchor="itu-transport-maintenance-15min-profile">
          <name>itu-transport-maintenance-15min Profile</name>
          <t>The <tt>itu-transport-maintenance-15min</tt> profile is designed for short-term operational monitoring and rapid fault detection. This profile utilizes all three measurement methods (counts, snapshot, and tidemarks) over 15-minute intervals to provide granular visibility into network performance. The profile includes core maintenance parameters: ES, SES, BBE, BBC, and UAS.</t>
          <t>The 15-minute interval enables operators to quickly detect and respond to performance degradation, making it ideal for proactive maintenance and immediate troubleshooting. The combination of counts (for cumulative event tracking), snapshot (for instantaneous state capture), and tidemarks (for extreme value monitoring) provides a comprehensive view of network behavior within each measurement period. This profile is particularly valuable for network operations centers (NOCs) requiring real-time visibility into transport network health and for automated systems that need to trigger immediate responses to performance anomalies.</t>
        </section>
        <section anchor="itu-transport-maintenance-24hr-profile">
          <name>itu-transport-maintenance-24hr Profile</name>
          <t>The <tt>itu-transport-maintenance-24hr</tt> profile extends the maintenance monitoring capabilities to longer-term analysis and trend identification. Similar to the 15-minute profile, it employs all three measurement methods (counts, snapshot, and tidemarks) but over 24-hour intervals. The parameter set includes ES, SES, BBE, BBC, UAS, and additionally PJE.</t>
          <t>The 24-hour measurement interval allows for comprehensive daily performance analysis, enabling operators to identify patterns, trends, and recurring issues that may not be apparent in shorter intervals. The inclusion of PJE provides additional insight into synchronization-related performance issues that are more relevant over longer observation periods. This profile supports strategic maintenance planning, capacity management, and historical performance analysis. It complements the 15-minute profile by providing the broader context needed for long-term network optimization and preventive maintenance strategies.</t>
        </section>
        <section anchor="itu-transport-qos-24hr-profile">
          <name>itu-transport-qos-24hr Profile</name>
          <t>The <tt>itu-transport-qos-24hr</tt> profile is specifically designed for Quality of Service monitoring and SLA compliance verification. Unlike the maintenance profiles, this profile focuses exclusively on the counts measurement method over 24-hour intervals, emphasizing sustained performance assessment rather than detailed operational monitoring. The parameter set includes ES, SES, BBE, BBC, SEP, and UAS.</t>
          <t>The QoS profile's exclusive use of counts measurement method reflects its focus on cumulative performance over extended periods, which is essential for SLA compliance and service quality reporting. The 24-hour interval aligns with typical SLA measurement periods and provides the statistical basis for service quality assessments. The inclusion of SEP is particularly relevant for QoS monitoring as it represents sustained periods of degraded performance that directly impact service quality commitments.</t>
        </section>
        <section anchor="profile-relationships-and-operational-integration">
          <name>Profile Relationships and Operational Integration</name>
          <t>These three profiles work together to provide a comprehensive performance monitoring framework. The <tt>itu-transport-maintenance-15min</tt> profile serves as the primary operational tool for immediate network management, while the <tt>itu-transport-maintenance-24hr</tt> profile provides the analytical foundation for strategic planning and trend analysis. The <tt>itu-transport-qos-24hr</tt> profile ensures that service quality commitments are met and provides the data necessary for SLA reporting and customer assurance.</t>
          <t>The hierarchical relationship between these profiles enables operators to correlate short-term operational events with long-term performance trends and service quality metrics. For example, a spike in ES detected by the 15-minute maintenance profile can be correlated with daily trends from the 24-hour maintenance profile and assessed against SLA thresholds defined in the QoS profile. This integrated approach supports both reactive troubleshooting and proactive network optimization while ensuring compliance with service quality commitments.</t>
        </section>
      </section>
    </section>
    <section anchor="periodic-measurement">
      <name>Periodic Measurement</name>
      <section anchor="measurement-timing">
        <name>Measurement Timing</name>
        <figure anchor="fig-interval-tree">
          <name>Sampling and Measurement Intervals Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw sampling-interval* [id]
     +--rw id                      string
     +--rw interval-value?         uint32
     +--rw unit?                   time-interval-unit
     +--rw measurement-interval* [id]
        +--rw id                     string
        +--rw interval-value?        uint32
        +--rw unit?                  time-interval-unit
]]></artwork>
        </figure>
        <t>Measurement timing parameters are key components of network performance management, offering standardized definitions for the time-related aspects of sampling, measuring, and reporting performance data. These parameters apply to the three main measurement methods for network equipment: counts, snapshot, and tidemarks. They include the sampling interval, measurement interval, and uniform time, all of which support consistent, accurate, and systematic performance monitoring and management.</t>
        <t>Sampling interval defines the period at which network performance data is collected at consistent, predetermined time points. It ensures the continuous and timely capture of performance metrics, enabling accurate assessments of network conditions.</t>
        <t>Measurement interval specifies the duration over which sampled performance data is aggregated or statistically processed. It helps manage large volumes of data by summarizing it into meaningful indicators for analysis, anomaly detection, and resource management.</t>
        <t>Uniform time is a fixed, predefined point within each measurement interval at which a snapshot measurement is taken. It enables a consistent and instantaneous view of network performance across intervals, without requiring data aggregation. This approach facilitates quick diagnostics and synchronization across monitoring systems.</t>
        <section anchor="use-cases">
          <name>Use Cases</name>
          <t>The hierarchical design of the <tt>ietf-pm-measurements</tt> YANG module, wherein a performance parameter supports multiple sampling intervals and each sampling interval may be associated with multiple measurement intervals and methods, is motivated by a set of operationally validated use cases as shown in the following table. In these use cases, a single logical client-whether a human operator, network application, or analytics engine-requires simultaneous access to multiple views of the same performance parameter, differentiated by temporal resolution and analysis objective.</t>
          <t>In network operations centers (NOCs), an operator may require performance monitoring based on high-frequency samples (e.g., 1-second sampling with 15-minute measurement intervals), while concurrently assessing longer-term service-level agreement (SLA) compliance through longer measurement windows (e.g., 24-hour aggregation). It aligns with the performance monitoring functions and applications on performance monitoring parameters such as errored seconds (ES), etc. described in <xref target="ITU-T_G7710"/>.</t>
          <t>A single dashboard or planning tool may correlate short-term utilization spikes with long-term trends using different sampling and measurement combinations on the same parameter.
Network Performance Monitor for Critical Link Stability monitor tracks latency using the counts method at multiple time resolutions to address immediate service degradation and long-term path reliability. A single monitoring platform benefits from consistent sampling while leveraging different measurement intervals to inform short-term action and long-term optimization.</t>
          <t>An AI/ML analytics system may ingest the same parameter, such as ES at different granularities for multiple purposes: high-resolution data for anomaly detection, medium-resolution tidemarks for real-time model updates, and low-resolution tidemarks for daily or monthly training. All of these operations may be performed within the scope of a single analytics application.</t>
          <t>A digital twin platform continuously mirrors the real-time behavior of a physical network using packet delay variation (pdv). To accurately represent dynamic conditions, the system uses very fine-grained sampling with multiple count-based measurement intervals to feed simulation models and predictive engines in real time. Measurement data is ingested at short intervals (e.g., 1 minute) to maintain near-instantaneous synchronization with the physical network's current performance, supporting accurate digital mirroring. A slightly longer interval (e.g., 5 minutes) allows the twin to detect and buffer small fluctuations, supporting feedback loops that smooth reactive behavior and adapt to transient changes. Long-term intervals (e.g., 1 hour) feed higher-order analytics and AI-based learning models that detect drift, optimize resource allocation, and improve future simulation fidelity.</t>
          <t>In all these cases, the hierarchical list structure-where parameters contain multiple sampling intervals, and each sampling interval defines one or more measurement intervals and methods-supports operational flexibility, avoids configuration duplication, and enables fine-grained control of measurement strategies.</t>
          <figure anchor="tab-usecases">
            <name>Use cases of sampling and measurement intervals</name>
            <artwork><![CDATA[
+-------------+-----------+-------------+-------------+-----------------+
| Client Type | Sampling  | Measurement | Measurement | Purpose         |
| (parameter) | Interval  | Interval    | Methods     |                 |
+-------------+-----------+-------------+-------------+-----------------+
| NOC         | 1s        | 15min       | tidemarks   | Maintenance     |
| (ES)        |           +-------------+-------------+-----------------+
|             |           | 24hr        | tidemarks   | QoS             |
+-------------+-----------+-------------+-------------+-----------------+
| NOC         | 500ms     | 1min        | counts      | Delay spikes    |
| (latency)   |           +-------------+-------------+-----------------+
|             |           | 30min       | counts      | Recurring bursts|
|             |           +-------------+-------------+-----------------+
|             |           | 24hr        | counts      | Trends          |                   
+-------------+-----------+-------------+-------------+-----------------+
| AI/ML       | 1s        | 1min        | tidemarks   | Anomaly detect  |
| Analytics   |           |-------------+-------------+-----------------+
| System      |           | 15min       | tidemarks   | Trend           |
| (ES)        |           |-------------+-------------+-----------------+
|             |           | 24hr        | tidemarks   | Model training  |
+-------------+-----------+-------------+-------------+-----------------+
| Digital     | 100ms     | 1min        | counts      | Synchronization |
| Twin        |           +-------------+-------------+-----------------+
| (pdv)       |           | 5min        | counts      | Feedback loop   |
|             |           +-------------+-------------+-----------------+
|             |           | 1hr         | counts      | Learning model  |
+-------------+-----------+-------------+-------------+-----------------+
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="measurement-methods">
        <name>Measurement Methods</name>
        <figure anchor="fig-measurement-tree">
          <name>Measurement Methods Subtree</name>
          <artwork type="ascii-art"><![CDATA[
+--rw measurement-methods
   +--rw counts
   |  +--rw transient-condition-config
   |  |  +--rw high-threshold?   uint32
   |  |  +--rw low-threshold?    uint32
   |  +--rw standing-condition-config
   |  |  +--rw standing-threshold?   uint32
   |  |  +--rw reset-threshold?      uint32
   |  +--ro measurement-value?            uint32
   +--rw snapshot
   |  +--rw uniform-time-config
   |  |  +--rw interval-value?   uint32
   |  |  +--rw unit?             time-interval-unit
   |  +--rw threshold-config
   |  |  +--rw high-threshold?   uint32
   |  |  +--rw low-threshold?    uint32
   |  +--ro measurement-value?     uint32
   +--rw tidemarks
      +--rw threshold-config
      |  +--rw high-threshold?   uint32
      |  +--rw low-threshold?    uint32
      +--ro high-measurement-value?   uint32
      +--ro low-measurement-value?    uint32
]]></artwork>
        </figure>
        <t>The measurement methods defined based on <xref target="ITU-T_G7710"/> establish a focused and efficient framework for network performance monitoring by specifying three core methods: counts, snapshot, and tidemarks.</t>
        <t>This intentional limitation supports key objectives such as implementation simplicity, operational efficiency, and cross-vendor interoperability. It emphasizes real-time network monitoring, favoring instantaneous or interval-based metrics over complex statistical calculations. Counts and snapshot methods provide immediate operational data without incurring the processing overhead associated with metrics like averages and variances etc. These statistical measures require significant aggregation logic, which can vary across implementations and devices. By keeping computation within network elements minimal, the approach reduces both processing and memory overhead, maintaining lightweight implementations. It establishes a clear separation between raw data collection (handled by network elements) and deeper analysis (delegated to external management systems). This separation not only simplifies device requirements but also enables more consistent and flexible analytics in centralized systems, which are better equipped to apply standardized analytical frameworks.</t>
        <t>Limiting measurement methods also contributes to energy efficiency by reducing the operational burden on Network Elements (NEs), while offloading data analysis to external management applications. Despite the simplicity, the selected measurement methods offer sufficient expressiveness to support comprehensive performance monitoring without excessive resource use. So, they are specifically optimized for Southbound Interface (SBI) between Physical Network Controllers (PNCs) and NEs to ensures as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Lightweight to implement</t>
          </li>
          <li>
            <t>Consistently supported across vendors</t>
          </li>
          <li>
            <t>Efficient for transport and storage in network management systems</t>
          </li>
        </ul>
        <t>The measurement methods are applicable to a wide range of monitored objects, including both network topology elements (e.g., links, tunnels) and physical equipment parameters(e.g., temperature, voltage).</t>
        <section anchor="counts">
          <name>Counts</name>
          <t>Counts measurement in network performance monitoring tracks the cumulative occurrences of specific events over a defined measurement interval, such as 15 minutes or 24 hours. This method captures how frequently certain network activities, like errors or transmission issues, occur, providing a historical view of recurring problems. Counts reset at the end of each interval, ensuring that every period starts with a fresh count for accurate monitoring.</t>
          <t>The primary purpose of counts is to identify trends and patterns in network behavior over time, helping operators detect anomalies or areas where issues frequently arise. This type of measurement is particularly useful for long-term analysis, enabling preventive maintenance and optimizing network performance. Unlike instantaneous measurements, counts focus on aggregation over time, making it easier to understand the persistence or recurrence of faults. The data gathered through counts helps in fault management and planning by highlighting repeated errors, congestion, or performance degradation that may affect service delivery. As a result, counts provide network operators with actionable insights for troubleshooting and capacity planning, ensuring smooth operation and reliability
across the network.</t>
        </section>
        <section anchor="snapshot">
          <name>Snapshot</name>
          <t>Snapshot is an instantaneous measurement taken at a specific point in time. It captures the instantaneous value of specific performance parameters at a regular, predefined point (uniform time) within each time interval. Snapshot provides a "momentary view" of network conditions, allowing operators to observe the network's status at specific intervals. The data from these uniform-time snapshots is then aggregated and analyzed to understand the immediate state across the entire network. By taking snapshots simultaneously across all network elements, operators can correlate data between different parts of the transport network. Snapshots are collected at pre-determined uniform times within fixed measurement intervals. The uniform time and fixed intervals can be configured based on the needs of the network.</t>
        </section>
        <section anchor="tidemarks">
          <name>Tidemarks</name>
          <t>Tidemarks measurements record the maximum (high tidemarks) and minimum (low tidemarks) values that a performance parameter reaches during a specified
measurement interval. This approach captures the extreme values and
performance fluctuations, highlighting the best and worst conditions that occur within the monitoring period. Tidemarks measurements provide deeper insights by capturing performance spikes or drops that may go unnoticed in average or cumulative data, enabling precise troubleshooting of intermittent or extreme conditions. For instance, while the average error rate over a period may appear acceptable, a high tidemarks could reveal intermittent spikes in errors that require attention. Conversely, a low tidemarks may expose periods of severely degraded signal quality or throughput.</t>
        </section>
      </section>
    </section>
    <section anchor="thresholding">
      <name>Thresholding</name>
      <section anchor="periodic-thresholding">
        <name>Periodic Thresholding</name>
        <t>Periodic threshold events are triggered when the counts or gauge value reaches a pre-defined threshold during periodic measurements including counts, snapshot, and tidemarks for performance parameters.</t>
        <t>The counts measurement has two types of threshold reporting methods:
transient and standing condition methods. The transient condition method
treats each measurement period separately. As soon as a threshold is reached or crossed in a measurement interval for a given performance measurement, a threshold report (TR) is generated. The standing condition method is an optional. The standing condition is raised, and a TR (Threshold Report) is generated, when the set threshold is reached or crossed. The standing condition is cleared, and a reset threshold report (RTR) is generated at the end of the period when the current value is below or equal to the reset threshold, provided that there was no unavailable time during that period.</t>
        <t>For gauge measurements ("snapshot" and "tidemarks"), an overflow condition
is determined and an out-of-range report is generated as soon as the gauge value reaches or crosses the high threshold. An underflow condition is determined and an out-of-range report is generated as soon as the gauge value is at or below the low threshold.</t>
      </section>
      <section anchor="non-periodic-thresholding">
        <name>Non-Periodic Thresholding</name>
        <t>Non-periodic threshold events are triggered regardless of the measurement methods (counts, snapshot, or tidemarks). The following parameters are used for non-periodic events.</t>
        <ul spacing="normal">
          <li>
            <t>BUT (Begin Unavailable Time): The event marking the start of a period when
a network element or connection is unavailable.</t>
          </li>
          <li>
            <t>EUT (End Unavailable Time): The event marking the end of a period when a network element or connection was unavailable.</t>
          </li>
          <li>
            <t>CSES (Consecutive Severely Errored Seconds): A sequence of severely errored seconds (SES) detected consecutively within a specified time interval. The reporting metrics include BUT, EUT, and the count of errors during that period.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="subscriptions">
      <name>Subscriptions</name>
      <t>Clients can receive a streaming of values of the PM parameters (PM data) by the measurement methods of counts, snapshot, and tidemarks with various time intervals, after subscribing to them in equipment. The streaming data measured on the PM parameters are used for maintenance and Quality of Service (QoS) monitoring in networks.</t>
      <t>Below are practical use cases demonstrating different subscription scenarios. These examples illustrate periodic and non-periodic subscriptions, including notifications triggered by threshold breaches. Each example aligns with IETF YANG Push protocols, showcasing how network elements generate and stream performance data based on subscription
parameters.</t>
      <section anchor="periodic-events">
        <name>Periodic Events</name>
        <t>The YANG Push subscription model, as defined in <xref target="RFC8641"/>, enables clients to subscribe to periodic performance measurement data from network elements. This model supports dynamic subscription establishment, modification, and termination for real-time streaming of PM data. Clients can specify subscription parameters including the target datastore (operational), encoding format (XML/JSON), and filtering criteria to receive only relevant performance metrics. The subscription mechanism allows for configurable update periods, enabling both high-frequency monitoring and long-term trend analysis (e.g., 24-hour intervals). Network elements generate periodic event notifications containing the requested PM data, which clients can process for real-time monitoring, historical analysis, or triggering automated responses based on performance thresholds.</t>
        <t><xref target="fig-Periodic-Event-Subscription-Example"/> shows a subscription request for the ES parameter in the <tt>itu-transport-maintenance-15min</tt> profile.
It requests counts measurement data sampled every second and aggregated over a 15-minute interval. The reporting period is set to 900 seconds, so a notification is sent at the end of each measurement interval.</t>
        <figure anchor="fig-Periodic-Event-Subscription-Example">
          <name>Periodic Event Subscription Example</name>
          <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:sn="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
     xmlns:pm-meas="urn:ietf:params:xml:ns:yang:ietf-pm-measurements"
     message-id="101">
  <sn:establish-subscription>
    <sn:stream>YANG-PUSH</sn:stream>
    <sn:encoding>encode-xml</sn:encoding>
    <sn:filter>
      <sn:datastore>operational</sn:datastore>
      <sn:xpath-filter>
        /pm-meas:pm-periodic-measurement/
          parameter-profile[name='itu-transport-maintenance-15min']/
          pm-parameter[name='es']/
          sampling-interval[id='1s']/
          measurement-interval[id='15min']/
          measurement-methods/counts/measurement-value
      </sn:xpath-filter>
    </sn:filter>
    <sn:period>900</sn:period>
    <sn:anchor-time>2024-07-01T00:00:00Z</sn:anchor-time>
  </sn:establish-subscription>
</rpc>
]]></sourcecode>
        </figure>
        <t><xref target="fig-Periodic-Event-Notification-Example"/> This XML shows a notification for the ES parameter in the <tt>itu-transport-maintenance-15min</tt> profile. It reports the counts measurement value sampled every second and aggregated over a 15-minute interval. The measured value (10) represents the total errored seconds in that period.</t>
        <figure anchor="fig-Periodic-Event-Notification-Example">
          <name>Periodic Event Notification Example</name>
          <sourcecode type="xml"><![CDATA[
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"
              xmlns:pm-meas="urn:ietf:params:xml:ns:yang:ietf-pm-measurements">
  <eventTime>2024-07-01T00:15:00Z</eventTime>
  <pm-meas:pm-periodic-measurement>
    <parameter-profile>
      <name>itu-transport-maintenance-15min</name>
      <pm-parameter>
        <name>es</name>
        <sampling-interval>
          <id>1s</id>
          <interval-value>1</interval-value>
          <unit>second</unit>
          <measurement-interval>
            <id>15min</id>
            <interval-value>15</interval-value>
            <unit>minute</unit>
            <measurement-methods>
              <counts>
                <measurement-value>10</measurement-value>
              </counts>
            </measurement-methods>
          </measurement-interval>
        </sampling-interval>
      </pm-parameter>
    </parameter-profile>
  </pm-meas:pm-periodic-measurement>
</notification>
]]></sourcecode>
        </figure>
      </section>
      <section anchor="threshold-events">
        <name>Threshold Events</name>
        <t>Threshold event subscriptions enable clients to receive immediate notifications when performance metrics cross predefined thresholds, providing proactive monitoring capabilities. This subscription type, based on <xref target="RFC8639"/> YANG Push for datastore change notifications, allows clients to define threshold conditions.</t>
        <section anchor="periodic-threshold-events">
          <name>Periodic Threshold Events</name>
          <figure anchor="fig-Periodic-Threshold-Event-Tree">
            <name>Periodic Threshold Events Subtree</name>
            <artwork type="ascii-art"><![CDATA[
   +--ro counts-transient
   |  +--ro event-type?       enumeration
   |  +--ro event-occurred?   boolean
   |  +--ro event-time?       yang:date-and-time
   +--ro counts-standing
   |  +--ro event-type?       enumeration
   |  +--ro event-occurred?   boolean
   |  +--ro event-time?       yang:date-and-time
   +--ro snapshot
   |  +--ro event-type?       enumeration
   |  +--ro event-occurred?   boolean
   |  +--ro event-time?       yang:date-and-time
   +--ro tidemarks
      +--ro event-type?       enumeration
      +--ro event-occurred?   boolean
      +--ro event-time?       yang:date-and-time
]]></artwork>
          </figure>
          <t>When a performance parameter exceeds or falls below configured thresholds for the periodic measurement methods of counts, snapshot, and tidemarks, the network element generates event-driven notifications containing detailed information about the threshold crossing event, including event type, occurrence time, and current parameter values. This mechanism supports four types of threshold events: count-transient-event for immediate threshold crossings, count-standing-event for persistent threshold violations, snapshot-event for instantaneous value threshold crossings, and tidemark-event for extreme value threshold crossings. These events enable rapid response to network performance degradation and automated fault management. The threshold event subscription complements periodic subscriptions by providing real-time alerts for critical performance issues that require immediate attention.</t>
          <t><xref target="fig-Threshold-Event-Subscription-Example"/> shows an example of the NETCONF request to subscribe to all pm-threshold-events notifications in the <tt>ietf-pm-measurements</tt> model.</t>
          <figure anchor="fig-Threshold-Event-Subscription-Example">
            <name>Threshold Event Subscription Example</name>
            <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:sn="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
     xmlns:pm-meas="urn:ietf:params:xml:ns:yang:ietf-pm-measurements"
     message-id="202">
  <sn:establish-subscription>
    <sn:stream>YANG-PUSH</sn:stream>
    <sn:encoding>encode-xml</sn:encoding>
    <sn:filter>
      <sn:datastore>operational</sn:datastore>
      <sn:xpath-filter>
        /pm-meas:pm-threshold-events
      </sn:xpath-filter>
    </sn:filter>
    <sn:period>1</sn:period>
    <sn:anchor-time>2024-07-01T00:00:00Z</sn:anchor-time>
  </sn:establish-subscription>
</rpc>
]]></sourcecode>
          </figure>
          <t><xref target="fig-Threshold-Event-Notification-Example"/> reports a high-oor-event threshold crossing for the snapshot measurement of the ES parameter in the <tt>itu-transport-maintenance-15min</tt> profile, with 1-second sampling and 15-minute measurement interval. It shows the event type, occurrence, and timestamp as defined in the YANG model.</t>
          <figure anchor="fig-Threshold-Event-Notification-Example">
            <name>Threshold Event Notification Example</name>
            <sourcecode type="xml"><![CDATA[
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"
              xmlns:pm-meas="urn:ietf:params:xml:ns:yang:ietf-pm-measurements">
  <eventTime>2024-07-01T00:05:23Z</eventTime>
  <pm-meas:pm-threshold-events>
    <periodic-events>
      <parameter-profile>
        <name>itu-transport-maintenance-15min</name>
        <pm-parameter>
          <name>es</name>
          <sampling-interval>
            <id>1s</id>
            <interval-value>1</interval-value>
            <unit>second</unit>
            <measurement-interval>
              <id>15min</id>
              <interval-value>15</interval-value>
              <unit>minute</unit>
              <event-types>
                <snapshot>
                  <event-type>High-OOR-event</event-type>
                  <event-occurred>true</event-occurred>
                  <event-time>2024-07-01T00:05:23Z</event-time>
                </snapshot>
              </event-types>
            </measurement-interval>
          </sampling-interval>
        </pm-parameter>
      </parameter-profile>
    </periodic-events>
  </pm-meas:pm-threshold-events>
</notification> 
]]></sourcecode>
          </figure>
        </section>
        <section anchor="non-periodic-threshold-events">
          <name>Non-Periodic Threshold Events</name>
          <figure anchor="fig-Non-Periodic-Events-Tree">
            <name>Non Periodic Threshold Events Subtree</name>
            <artwork type="ascii-art"><![CDATA[
       +--ro non-periodic-events
          +--ro BUT-event
          |  +--ro event-occurred?   boolean
          |  +--ro event-time?       yang:date-and-time
          +--ro EUT-event
          |  +--ro event-occurred?   boolean
          |  +--ro event-time?       yang:date-and-time
          |  +--ro duration?         uint32
          +--ro CSES-event
             +--ro event-occurred?   boolean
             +--ro start?            yang:date-and-time
             +--ro end?              yang:date-and-time
             +--ro duration?         uint32
             +--ro error-count?      uint32
]]></artwork>
          </figure>
          <t>Non-periodic threshold event subscriptions provide immediate notifications for critical network availability and error conditions that occur independently of regular measurement intervals. These subscriptions monitor for specific events such as BUT, EUT, and CSES that indicate significant network performance degradation or service interruptions. When these events occur, the network element generates immediate notifications containing event details, timing information, and duration data. This subscription type enables proactive network management by providing real-time awareness of critical network conditions that require immediate operator attention or automated intervention. Non-periodic threshold events complement periodic monitoring by capturing exceptional conditions that may not be detected through regular interval-based measurements.</t>
        </section>
      </section>
    </section>
    <section anchor="yang-data-model">
      <name>YANG Data Model</name>
      <t>The YANG module for PM measurements is defined below:</t>
      <sourcecode type="yang"><![CDATA[
module ietf-pm-measurements {
  yang-version 1.1;
  namespace 
    "urn:ietf:params:xml:ns:yang:ietf-pm-measurements";
  prefix pm-meas;

  import ietf-yang-types {
    prefix yang;
    reference "RFC 6991: Common YANG Data Types";
  }

  organization
    "IETF Common Control and Measurement Plane (ccamp) 
     Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     Editor: Bin Yeong Yoon <mailto:byyun@etri.re.kr>";
  description
    "This YANG module defines a comprehensive data model for 
     performance management (PM) streaming from network equipment 
     to clients, based on ITU-T G.7710. It supports real-time 
     streaming of performance measurements using three core 
     methods: counts (cumulative events), snapshot (instantaneous 
     values), and tidemarks (extreme values).
     
     The module enables proactive network monitoring through 
     configurable sampling and measurement intervals, supporting 
     both high-frequency real-time monitoring and long-term trend 
     analysis. It provides threshold event notifications for both 
     periodic measurements and non-periodic events (BUT, EUT, CSES).
     
     The design supports AI-driven applications, network digital 
     twins, and dynamic network environments by enabling multiple 
     simultaneous views of the same performance parameter with 
     different temporal resolutions. This hierarchical structure 
     allows operators, analytics systems, and digital twin platforms 
     to access performance data at appropriate granularities while 
     maintaining operational efficiency and cross-vendor 
     interoperability.
     
     The module integrates with IETF YANG Push protocols for 
     subscription-based streaming, enabling clients to receive 
     continuous performance data and threshold event notifications 
     for real-time monitoring, historical analysis, and automated 
     network management.";

  revision 2025-10-17 {
    description 
      "Initial version.";
    reference "RFC XXXX: A YANG Data Model of Performance Management Streaming";
  }

  /*
   * TYPEDEFs
   */
  typedef profile-names {
    type string {
      pattern 
        '[a-zA-Z][a-zA-Z0-9_-]*-[a-zA-Z][a-zA-Z0-9_-]*-
         [a-zA-Z][a-zA-Z0-9_-]*(-[a-zA-Z][a-zA-Z0-9_-]*)?';
    }
    description
      "Parameter profile name following the format:
       <source>-<network>-<purpose>[-<characteristic>]
       
       Where:
       - <source>: Standards body or organization 
         (e.g., itu, ieee, ietf)
       - <network>: Network domain or layer 
         (e.g., transport, access, core)
       - <purpose>: Intended use or function 
         (e.g., maintenance, qos, availability)
       - <characteristic>: Optional qualifying information 
         (e.g., 15min, 24hr, high-priority)
       
       Examples:
       - itu-transport-maintenance-15min
       - itu-transport-maintenance-24hr
       - itu-transport-qos-24hr
       - ieee-access-availability";
  }

  typedef time-interval-unit {
    type enumeration {
      enum millisecond {
        description "Time interval in milliseconds.";
      }
      enum second {
        description "Time interval in seconds.";
      }
      enum minute {
        description "Time interval in minutes.";
      }
      enum hour {
        description "Time interval in hours.";
      }
    }
    description "Units for expressing time intervals.";
  }

  /*
   * IDENTITIES
   */
  identity periodic-events {
    description
      "Base identity for periodic event notifications.";
  }

  identity counts-transient {
    base periodic-events;
    description
      "Notification for transient threshold events in counts 
       measurements.";
  }

  identity counts-standing {
    base periodic-events;
    description
      "Notification for standing threshold events in counts 
       measurements.";
  }

  identity snapshot {
    base periodic-events;
    description
      "Notification for snapshot measurement threshold events.";
  }

  identity tidemarks {
    base periodic-events;
    description
      "Notification for tidemarks measurement threshold events.";
  }

  identity non-periodic-events {
    description
      "Base identity for non-periodic event notifications.";
  }

  identity but {
    base non-periodic-events;
    description
      "Notification for Begin Unavailable Time (BUT) events.";
  }

  identity eut {
    base non-periodic-events;
    description
      "Notification for End Unavailable Time (EUT) events.";
  }

  identity cses {
    base non-periodic-events;
    description
      "Notification for Consecutive Severely Errored Seconds 
       (CSES) events.";
  }

  /*
   * COMMON GROUPINGS
   */
  grouping threshold-config {
    description 
      "Common threshold configuration for all measurement types.";
    leaf high-threshold {
      type uint32;
      description 
        "High threshold that triggers alerts when exceeded.";
    }
    leaf low-threshold {
      type uint32;
      description 
        "Low threshold that triggers alerts when performance falls 
         below acceptable levels.";
    }
  }

  grouping event-state-info {
    description 
      "Common event state information for all event types.";
    leaf event-occurred {
      type boolean;
      description 
        "Indicates whether a threshold crossing or performance 
         event has occurred.";
    }
    leaf event-time {
      type yang:date-and-time;
      description 
        "Precise timestamp of when the event occurred.";
    }
  }

  grouping oor-event-type {
    description 
      "Common out-of-range event type definition.";
    leaf event-type {
      type enumeration {
        enum High-OOR-event {
          description "High OOR threshold exceeded.";
        }
        enum Low-OOR-event {
          description "Low OOR threshold crossed.";
        }
      }
      description 
        "Specifies whether the high or low OOR threshold was 
         crossed.";
    }
  }

  grouping triggered-oor-event-info {
    description 
      "Combined threshold event type and event information.";
    uses oor-event-type;
    uses event-state-info;
  }

  grouping time-interval-config {
    description "Common time interval configuration.";
    leaf interval-value {
      type uint32;
      description "Numeric value for the interval.";
    }
    leaf unit {
      type time-interval-unit;
      description "Time unit for the interval value.";
    }
  }

  /*
   * MEASUREMENT METHOD GROUPINGS
   */
  grouping count-measurement-gr {
    description 
      "Counts measurement for cumulative event tracking.";
    container counts {
      description 
        "Contains counts measurement values and configuration.";
      container transient-condition-config {
        description 
          "Configuration for transient out-of-range conditions.";
        uses threshold-config;
      }
      container standing-condition-config {
        description 
          "Configuration for standing condition monitoring.";
        leaf standing-threshold {
          type uint32;
          description 
            "Threshold value that triggers standing condition 
             alerts.";
        }
        leaf reset-threshold {
          type uint32;
          description 
            "Reset threshold value that clears standing conditions.";
        }
      }
      leaf measurement-value {
        type uint32;
        config false;
        description 
          "Current cumulative count value for the measurement 
           interval.";
      }
    }
  }

  grouping snapshot-measurement-gr {
    description 
      "Snapshot measurements for instantaneous values.";
    container snapshot {
      description 
        "Contains snapshot measurement configuration and values.";
      container uniform-time-config {
        description 
          "Configuration for uniform time intervals between 
           snapshots.";
        leaf interval-value {
          type uint32;
          default 1;
          description 
            "Numeric value for the sampling interval between 
             snapshots.";
        }
        leaf unit {
          type time-interval-unit;
          description 
            "Time unit for the snapshot sampling interval.";
        }
      }
      container threshold-config {
        description 
          "Configuration for snapshot threshold monitoring.";
        uses threshold-config;
      }
      leaf measurement-value {
        type uint32;
        config false;
        description 
          "Current instantaneous snapshot value.";
      }
    }
  }

  grouping tidemarks-measurement-gr {
    description 
      "Tidemarks measurements for extreme values.";
    container tidemarks {
      description 
        "Contains tidemarks measurement values and threshold 
         configuration.";
      container threshold-config {
        description 
          "Configuration for tidemarks threshold monitoring.";
        uses threshold-config;
      }
      leaf high-measurement-value {
        type uint32;
        config false;
        description 
          "Current maximum value recorded during the measurement 
           interval.";
      }
      leaf low-measurement-value {
        type uint32;
        config false;
        description 
          "Current minimum value recorded during the measurement 
           interval.";
      }
    }
  }

  grouping measurement-methods-gr {
    description 
      "Container for the three core measurement methods.";
    container measurement-methods {
      description 
        "Container for different measurement methods.";
      uses count-measurement-gr;
      uses snapshot-measurement-gr;
      uses tidemarks-measurement-gr;
    }
  }

  /*
   * EVENT GROUPINGS
   */
  grouping counts-transient-event-gr {
    description 
      "Threshold events for counts measurements.";
    container counts-transient {
      description 
        "Contains information about transient threshold events for 
         counts.";
      uses triggered-oor-event-info;
    }
  }

  grouping counts-standing-event-gr {
    description 
      "Standing condition events for counts measurements.";
    container counts-standing {
      description 
        "Contains information about standing threshold events for 
         counts.";
      leaf event-type {
        type enumeration {
          enum Threshold-Report {
            description "Threshold Report (TR) generated.";
          }
          enum Reset-Threshold-Report {
            description "Reset Threshold Report (RTR) generated.";
          }
        }
        description 
          "Specifies whether a TR or RTR was generated.";
      }
      uses event-state-info;
    }
  }

  grouping snapshot-events-gr {
    description 
      "Threshold events for snapshot measurements.";
    container snapshot {
      description 
        "Contains snapshot threshold event information.";
      uses triggered-oor-event-info;
    }
  }

  grouping tidemarks-events-gr {
    description 
      "Threshold events for tidemarks measurements.";
    container tidemarks {
      description 
        "Contains tidemarks threshold event information.";
      uses triggered-oor-event-info;
    }
  }

  /*
   * MEASUREMENT INTERVAL STRUCTURES
   */
  grouping periodic-measurement-intervals {
    description 
      "Hierarchical structure for periodic measurement timing and 
       methods.";
    list sampling-interval {
      key "id";
      description 
        "List of sampling intervals defining data collection 
         frequency.";
      leaf id {
        type string;
        description 
          "Unique identifier for this sampling interval 
           configuration.";
      }
      leaf interval-value {
        type uint32;
        default 1;
        description "Numeric value for the sampling interval.";
      }
      leaf unit {
        type time-interval-unit;
        default second;
        description "Time unit for the sampling interval value.";
      }
      list measurement-interval {
        key "id";
        description 
          "List of measurement intervals defining aggregation 
           periods.";
        leaf id {
          type string;
          description 
            "Unique identifier for this measurement interval 
             configuration.";
        }
        leaf interval-value {
          type uint32;
          default 15;
          description "Numeric value for the measurement interval.";
        }
        leaf unit {
          type time-interval-unit;
          default minute;
          description 
            "Time unit for the measurement interval value.";
        }
        uses measurement-methods-gr;
      }
    }
  }

  grouping non-periodic-events-gr {
    description 
      "Container for non-periodic event parameters.";
    container BUT-event {
      description "Begin Unavailable Time (BUT) event.";
      uses event-state-info;
    }
    container EUT-event {
      description "End Unavailable Time (EUT) event.";
      leaf event-occurred {
        type boolean;
        description 
          "Indicates whether an EUT event was generated.";
      }
      leaf event-time {
        type yang:date-and-time;
        description "Precise timestamp of the EUT event.";
      }
      leaf duration {
        type uint32;
        units "seconds";
        description 
          "Total duration of unavailability in seconds.";
      }
    }
    container CSES-event {
      description 
        "Consecutive Severely Errored Seconds (CSES) event.";
      leaf event-occurred {
        type boolean;
        description 
          "Indicates whether a CSES event was generated.";
      }
      leaf start {
        type yang:date-and-time;
        description 
          "Timestamp indicating when the CSES period began.";
      }
      leaf end {
        type yang:date-and-time;
        description 
          "Timestamp indicating when the CSES period ended.";
      }
      leaf duration {
        type uint32;
        units "seconds";
        description "Duration of the CSES period in seconds.";
      }
      leaf error-count {
        type uint32;
        description 
          "Number of errors during the CSES period.";
      }
    }
  }

  grouping pm-periodic-measurement-gr {
    description 
      "Hierarchical structure for periodic performance 
       measurements.";
    list parameter-profile {
      key "name";
      description "List of performance parameter profiles.";
      leaf name {
        type profile-names;
        description "Name of the parameter profile.";
      }
      list pm-parameter {
        key "name";
        description 
          "List of PM parameters within the parameter profile.";
        leaf name {
          type string;
          description 
            "Name of the performance parameter being measured.";
        }
        uses periodic-measurement-intervals;
      }
    }
  }

  /*
   * MAIN CONTAINER
   */
  container pm-periodic-measurement {
    description 
      "Main container for periodic performance measurements.";
    uses pm-periodic-measurement-gr;
  }

  /*
   * NOTIFICATIONS
   */
  notification pm-threshold-events {
    description 
      "Notification for threshold crossing events.";
    container periodic-events {
      description "Container for periodic threshold events.";
      list parameter-profile {
        key "name";
        description 
          "List of performance parameter profiles for event 
           monitoring.";
        leaf name {
          type profile-names;
          description "Name of the parameter profile.";
        }
        list pm-parameter {
          key "name";
          description 
            "List of PM parameters within the parameter profile.";
          leaf name {
            type string;
            description 
              "Name of the performance parameter being monitored.";
          }
          list sampling-interval {
            key "id";
            description 
              "List of sampling intervals for event monitoring.";
            leaf id {
              type string;
              description 
                "Unique identifier for this sampling interval 
                 configuration.";
            }
            uses time-interval-config;
            list measurement-interval {
              key "id";
              description 
                "List of measurement intervals for event 
                 aggregation.";
              leaf id {
                type string;
                description 
                  "Unique identifier for this measurement interval 
                   configuration.";
              }
              uses time-interval-config;
              container event-types {
                description 
                  "Container for different threshold event types.";
                uses counts-transient-event-gr;
                uses counts-standing-event-gr;
                uses snapshot-events-gr;
                uses tidemarks-events-gr;
              }
            }
          }
        }
      }
    }

    container non-periodic-events {
      description 
        "Container for non-periodic threshold events.";
      uses non-periodic-events-gr;
    }
  }
}
]]></sourcecode>
    </section>
    <section anchor="yang-data-trees">
      <name>YANG Data Trees</name>
      <figure anchor="fig-ni-tree">
        <name>Tree of pm measurements module</name>
        <artwork type="ascii-art" name="ietf-pm-measurements.tree"><![CDATA[
module: ietf-pm-measurements
  +--rw pm-periodic-measurement
     +--rw parameter-profile* [name]
        +--rw name            profile-names
        +--rw pm-parameter* [name]
           +--rw name                 string
           +--rw sampling-interval* [id]
              +--rw id                      string
              +--rw interval-value?         uint32
              +--rw unit?                   time-interval-unit
              +--rw measurement-interval* [id]
                 +--rw id                     string
                 +--rw interval-value?        uint32
                 +--rw unit?                  time-interval-unit
                 +--rw measurement-methods
                    +--rw counts
                    |  +--rw transient-condition-config
                    |  |  +--rw high-threshold?   uint32
                    |  |  +--rw low-threshold?    uint32
                    |  +--rw standing-condition-config
                    |  |  +--rw standing-threshold?   uint32
                    |  |  +--rw reset-threshold?      uint32
                    |  +--ro measurement-value?            uint32
                    +--rw snapshot
                    |  +--rw uniform-time-config
                    |  |  +--rw interval-value?   uint32
                    |  |  +--rw unit?             time-interval-unit
                    |  +--rw threshold-config
                    |  |  +--rw high-threshold?   uint32
                    |  |  +--rw low-threshold?    uint32
                    |  +--ro measurement-value?     uint32
                    +--rw tidemarks
                       +--rw threshold-config
                       |  +--rw high-threshold?   uint32
                       |  +--rw low-threshold?    uint32
                       +--ro high-measurement-value?   uint32
                       +--ro low-measurement-value?    uint32

  notifications:
    +---n pm-threshold-events
       +--ro periodic-events
       |  +--ro parameter-profile* [name]
       |     +--ro name            profile-names
       |     +--ro pm-parameter* [name]
       |        +--ro name                 string
       |        +--ro sampling-interval* [id]
       |           +--ro id                      string
       |           +--ro interval-value?         uint32
       |           +--ro unit?                   time-interval-unit
       |           +--ro measurement-interval* [id]
       |              +--ro id                string
       |              +--ro interval-value?   uint32
       |              +--ro unit?             time-interval-unit
       |              +--ro event-types
       |                 +--ro counts-transient
       |                 |  +--ro event-type?       enumeration
       |                 |  +--ro event-occurred?   boolean
       |                 |  +--ro event-time?       yang:date-and-time
       |                 +--ro counts-standing
       |                 |  +--ro event-type?       enumeration
       |                 |  +--ro event-occurred?   boolean
       |                 |  +--ro event-time?       yang:date-and-time
       |                 +--ro snapshot
       |                 |  +--ro event-type?       enumeration
       |                 |  +--ro event-occurred?   boolean
       |                 |  +--ro event-time?       yang:date-and-time
       |                 +--ro tidemarks
       |                    +--ro event-type?       enumeration
       |                    +--ro event-occurred?   boolean
       |                    +--ro event-time?       yang:date-and-time
       +--ro non-periodic-events
          +--ro BUT-event
          |  +--ro event-occurred?   boolean
          |  +--ro event-time?       yang:date-and-time
          +--ro EUT-event
          |  +--ro event-occurred?   boolean
          |  +--ro event-time?       yang:date-and-time
          |  +--ro duration?         uint32
          +--ro CSES-event
             +--ro event-occurred?   boolean
             +--ro start?            yang:date-and-time
             +--ro end?              yang:date-and-time
             +--ro duration?         uint32
             +--ro error-count?      uint32
]]></artwork>
      </figure>
    </section>
    <section anchor="pm-interval-capabilities">
      <name>PM Interval Capabilities</name>
      <t>The <tt>ietf-pm-interval-capabilities</tt> YANG module provides comprehensive capability discovery for interval configurations, enabling clients to understand the supported temporal resolutions before configuring PM measurements. This module is designed to work seamlessly with the <tt>ietf-pm-measurements</tt> module, supporting both real-time monitoring scenarios requiring high-frequency sampling and long-term trend analysis requiring extended measurement intervals.</t>
      <t>The advertisement of interval capabilities follows standard IETF procedures for capability discovery in network management systems, based on the principles outlined in <xref target="RFC9195"/> for YANG module capability advertisement, <xref target="RFC8525"/> for YANG library, and <xref target="RFC9196"/> for YANG module advertisement.</t>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>The need for interval capabilities discovery arises from several critical factors that affect the configuration and operation of performance monitoring systems. Different types of performance parameters inherently require different sampling and measurement intervals based on their characteristics and measurement objectives. For example, error-based parameters such as errored seconds (ES) may require frequent sampling to capture transient events, while availability metrics might be adequately monitored with longer intervals. Similarly, latency measurements often need high-frequency sampling to detect microsecond-level variations, whereas throughput statistics can be effectively captured with less frequent sampling.</t>
        <t>Vendor dependencies represent another significant factor necessitating interval capabilities discovery. Network equipment manufacturers implement different hardware architectures, processing capabilities, and measurement engines, resulting in varying support for sampling and measurement intervals. Some vendors may support very fine-grained intervals (e.g., millisecond-level sampling) for high-precision applications, while others may be optimized for longer intervals suitable for operational monitoring. Additionally, different vendors may have different constraints on the relationship between sampling and measurement intervals, with some supporting only specific multiples or ranges.</t>
        <t>The complexity of modern network environments further underscores the importance of interval capabilities discovery. Multi-vendor networks require clients to adapt their monitoring strategies based on the specific capabilities of each network element. Without proper capability discovery, clients risk configuring unsupported intervals, leading to configuration failures, suboptimal monitoring, or even system instability. The interval capabilities framework addresses these challenges by providing a standardized mechanism for discovering and understanding the temporal resolution capabilities of network elements, enabling clients to make informed decisions about interval configuration and ensuring interoperability across diverse network environments.</t>
        <t>The interval capabilities module follows a hierarchical structure that mirrors the measurement configuration model, ensuring consistency between capability discovery and actual measurement configuration. The architecture consists of three levels: Parameter Profiles (collections of related performance parameters such as <tt>itu-transport-maintenance-15min</tt>), PM Parameters (individual performance parameters within profiles such as <tt>es</tt>, <tt>ses</tt>, <tt>bbe</tt>), and Interval Capabilities (sampling and measurement interval capabilities for each parameter).</t>
        <t>The module defines a critical relationship between sampling and measurement intervals: measurement intervals must be multiples of their corresponding sampling intervals. This constraint ensures that measurement aggregation periods align with data collection frequency, preventing configuration errors and ensuring accurate performance monitoring. For example, if a device supports a 5-second sampling interval, valid measurement intervals would be 5s, 10s, 15s, 30s, 60s, etc. This relationship is enforced through the hierarchical structure where measurement intervals are defined within their corresponding sampling intervals.</t>
      </section>
      <section anchor="capability-discovery-and-configuration-workflow">
        <name>Capability Discovery and Configuration Workflow</name>
        <t>A NETCONF client can discover the sampling and measurement interval capabilities of a server by following the standard IETF procedures for capability and module discovery. This process involves multiple steps, beginning with the session establishment and extending to operational data retrieval.</t>
        <t>Upon initiating a session, the client receives the server's <tt>&lt;hello&gt;</tt> message as defined in <xref target="RFC6241"/>. This message includes a list of capability URIs, indicating the supported YANG modules and protocol extensions. If the server includes entries for both <tt>ietf-pm-measurements</tt> and <tt>ietf-pm-interval-capabilities</tt>, the client infers that the server supports performance measurement with parameter-specific intervals, and also advertises its supported interval values.</t>
        <t>To confirm module support and retrieve metadata such as revision dates and feature availability, the client queries the YANG Library as defined in <xref target="RFC8525"/>. This step allows the client to verify that both the measurement model and the interval capability model are implemented and discoverable.</t>
        <t>The client then queries the <tt>pm-interval-capabilities</tt> container, which is defined with <tt>config false</tt> and thus resides in the operational datastore per the Network Management Datastore Architecture (NMDA) described in <xref target="RFC8342"/>. By querying this container, the client can retrieve a list of supported sampling and measurement intervals for each performance parameter and profile. The structure includes constraints such as minimum and maximum values, allowed time units, and granularity. This live runtime exposure of capability information follows the model described in <xref target="RFC9196"/> for advertising telemetry and notification capabilities in operational state.</t>
        <t>Alternatively, the same interval capabilities may be published as static data files using the format defined in <xref target="RFC9195"/>. This allows vendors or standards bodies to document the supported measurement intervals of a device or profile without requiring a live connection to the system.</t>
        <t>At this point, the client uses the retrieved interval capabilities to configure a performance measurement subscription using the <tt>pm-measurements</tt> model. This configuration is made in alignment with the update intervals supported by the server, ensuring compatibility and preventing errors such as <tt>period-unsupported</tt>, as outlined in <xref target="RFC8641"/>.</t>
        <t>This end-to-end process ensures that performance measurement configurations are both valid and optimized for the server's capabilities, leveraging both static publication and runtime introspection using standardized models and procedures.</t>
      </section>
      <section anchor="interval-capabilities-example">
        <name>Interval Capabilities Example</name>
        <t>The following example demonstrates how a client can discover interval capabilities for the ES parameter in the <tt>itu-transport-maintenance-15min</tt> profile, specifically requesting 1-second sampling with 15-minute measurement intervals.</t>
        <figure anchor="fig-Interval-Capabilities-Example">
          <name>Interval Capabilities Discovery Example</name>
          <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:pm-int-cap="urn:ietf:params:xml:ns:yang:ietf-pm-interval-capabilities"
     message-id="301">
  <get>
    <filter>
      <pm-int-cap:pm-interval-capabilities>
        <parameter-profile>
          <name>itu-transport-maintenance-15min</name>
          <pm-parameter>
            <name>es</name>
            <interval-relationships>
              <sampling-interval>
                <id>1s</id>
                <min-value>1</min-value>
                <max-value>1</max-value>
                <units>second</units>
                <default-value>1</default-value>
                <default-unit>second</default-unit>
                <granularity>1</granularity>
                <measurement-interval>
                  <id>measurement-range</id>
                  <min-value>5</min-value>
                  <max-value>1440</max-value>
                  <units>minute</units>
                  <default-value>15</default-value>
                  <default-unit>minute</default-unit>
                  <granularity>5</granularity>
                </measurement-interval>
              </sampling-interval>
            </interval-relationships>
          </pm-parameter>
        </parameter-profile>
      </pm-int-cap:pm-interval-capabilities>
    </filter>
  </get>
</rpc>
]]></sourcecode>
        </figure>
        <t>This example shows how a client can discover that the network element supports 1-second sampling with a flexible measurement interval range (5-1440 minutes) with 5-minute granularity. The response confirms unit support for seconds in sampling and minutes in measurement intervals, with a default recommendation of 15 minutes, enabling the client to choose any appropriate measurement duration within the supported range for their PM monitoring requirements.</t>
      </section>
      <section anchor="yang-data-model-1">
        <name>YANG Data Model</name>
        <sourcecode type="yang"><![CDATA[
module ietf-pm-interval-capabilities {
  yang-version 1.1;
  namespace 
    "urn:ietf:params:xml:ns:yang:ietf-pm-interval-capabilities";
  prefix ipc;

  import ietf-pm-measurements {
    prefix pm-meas;
    reference "draft-yoon-ccamp-pm-streaming-03";
  }

  organization
    "IETF Common Control and Measurement Plane (ccamp) 
     Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     Editor: Bin Yeong Yoon <mailto:byyun@etri.re.kr>";
  description
    "This YANG module defines a data model for 
     discovering and expressing performance management (PM) 
     interval capabilities in network equipment. The module 
     enables clients to discover what sampling and measurement 
     intervals a server can support for different performance 
     parameters within various parameter profiles.

     This module provides hierarchical interval capability discovery
     where measurement intervals must be multiples of their 
     corresponding sampling intervals, and each parameter can have 
     different interval capabilities within parameter profiles.
     
     This module is designed to work with ietf-pm-measurements 
     for complete PM streaming solutions and supports both 
     real-time monitoring and long-term trend analysis.";

  revision 2025-10-17 {
    description 
      "Initial version.";
    reference "RFC XXXX: A YANG Data Model of Performance Management Streaming";
  }

  /*
   * TYPEDEFs
   */
  typedef interval-unit {
    type enumeration {
      enum millisecond {
        description "Time interval in milliseconds.";
      }
      enum second {
        description "Time interval in seconds.";
      }
      enum minute {
        description "Time interval in minutes.";
      }
      enum hour {
        description "Time interval in hours.";
      }
      enum day {
        description "Time interval in days.";
      }
    }
    description "Supported units for expressing time intervals.";
  }

  /*
   * IDENTITIES
   */
  identity interval-capability-type {
    description
      "Base identity for different types of interval capabilities.";
  }

  identity sampling-interval-capability {
    base interval-capability-type;
    description
      "Capability for sampling intervals - how frequently 
       data is collected.";
  }

  identity measurement-interval-capability {
    base interval-capability-type;
    description
      "Capability for measurement intervals - how long 
       measurements are aggregated.";
  }

  /*
   * GROUPINGS
   */
  grouping interval-constraints {
    description
      "Constraints for supported intervals including min/max 
       values and supported units. This grouping defines the 
       capability constraints for both sampling and measurement 
       intervals, allowing devices to express their supported 
       interval ranges, units, and granularity.";
    leaf min-value {
      type uint32;
      description
        "Minimum supported value for this interval type.";
    }
    leaf max-value {
      type uint32;
      description
        "Maximum supported value for this interval type.";
    }
    leaf-list units {
      type interval-unit;
      description
        "List of supported time units for this interval type.";
    }
    leaf default-value {
      type uint32;
      description
        "Default value recommended for this interval type.";
    }
    leaf default-unit {
      type interval-unit;
      description
        "Default unit recommended for this interval type.";
    }
    leaf granularity {
      type uint32;
      description
        "Granularity step for interval values. For example, 
         if granularity is 5, then only values that are 
         multiples of 5 are supported.";
    }
  }

  grouping parameter-interval-capabilities {
    description
      "Interval capabilities for a specific parameter within 
       a profile, including hierarchical interval relationships 
       where all interval information is contained within the 
       sampling-interval structure.";
    leaf name {
      type string;
      description
        "Name of the performance parameter (e.g., es, ses, bbe).";
    }
    container interval-relationships {
      description
        "Defines hierarchical relationships between sampling 
         and measurement intervals for this parameter. 
         Measurement intervals must be multiples of their 
         corresponding sampling intervals.";
      list sampling-interval {
        key "id";
        description
          "Maps sampling intervals to their compatible 
           measurement intervals with complete capability 
           information.";
        leaf id {
          type string;
          description
            "Unique identifier for this sampling interval 
             capability.";
        }
        uses interval-constraints;
        list measurement-interval {
          key "id";
          description
            "Detailed information for each compatible 
             measurement interval within the sampling interval
             structure.";
          leaf id {
            type string;
            description
              "Unique identifier for this measurement 
               interval capability.";
          }
          uses interval-constraints;
        }
      }
    }
  }

  grouping profile-parameter-capabilities {
    description
      "Capabilities for all parameters within a specific 
       parameter profile. This grouping defines the complete 
       capability information for a parameter profile, including 
       the profile name and all performance parameters with their 
       respective interval capabilities.";
    leaf name {
      type pm-meas:profile-names;
      description
        "Name of the parameter profile (e.g., 
         itu-transport-maintenance-15min).";
    }
    list pm-parameter {
      key "name";
      description
        "List of parameters with their specific interval 
         capabilities within this profile.";
      uses parameter-interval-capabilities;
    }
  }

  
  /*
   * MAIN CONTAINER
   */
  container pm-interval-capabilities {
    description
      "Main container for hierarchical PM interval capabilities. 
       This container provides comprehensive information about 
       the sampling and measurement intervals that a server 
       can support for different parameters within different 
       parameter profiles.";
    config false;

    list parameter-profile {
      key "name";
      description
        "List of parameter profiles with their parameter-specific 
         interval capabilities. Each profile represents a collection 
         of parameters that share common measurement requirements 
         but may have different interval capabilities.";
      uses profile-parameter-capabilities;
    }

  }

}
]]></sourcecode>
      </section>
      <section anchor="yang-data-trees-1">
        <name>YANG Data Trees</name>
        <figure anchor="fig-interval-capabilities-tree">
          <name>Tree of pm interval capabilities module</name>
          <artwork type="ascii-art" name="ietf-pm-interval-capabilities.tree"><![CDATA[
module: ietf-pm-interval-capabilities
  +--ro pm-interval-capabilities
     +--ro parameter-profile* [name]
        +--ro name            pm-meas:profile-names
        +--ro pm-parameter* [name]
           +--ro name                      string
           +--ro interval-relationships
              +--ro sampling-interval* [id]
                 +--ro id                      string
                 +--ro min-value?              uint32
                 +--ro max-value?              uint32
                 +--ro units*                  interval-unit
                 +--ro default-value?          uint32
                 +--ro default-unit?           interval-unit
                 +--ro granularity?            uint32
                 +--ro measurement-interval* [id]
                    +--ro id               string
                    +--ro min-value?       uint32
                    +--ro max-value?       uint32
                    +--ro units*           interval-unit
                    +--ro default-value?   uint32
                    +--ro default-unit?    interval-unit
                    +--ro granularity?     uint32
]]></artwork>
        </figure>
      </section>
    </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>&lt;Add any security considerations&gt;</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>&lt;Add any IANA considerations&gt;</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8639">
          <front>
            <title>Subscription to YANG Notifications</title>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="A. Gonzalez Prieto" initials="A." surname="Gonzalez Prieto"/>
            <author fullname="E. Nilsen-Nygaard" initials="E." surname="Nilsen-Nygaard"/>
            <author fullname="A. Tripathy" initials="A." surname="Tripathy"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document defines a YANG data model and associated mechanisms enabling subscriber-specific subscriptions to a publisher's event streams. Applying these elements allows a subscriber to request and receive a continuous, customized feed of publisher-generated information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8639"/>
          <seriesInfo name="DOI" value="10.17487/RFC8639"/>
        </reference>
        <reference anchor="RFC8640">
          <front>
            <title>Dynamic Subscription to YANG Events and Datastores over NETCONF</title>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="A. Gonzalez Prieto" initials="A." surname="Gonzalez Prieto"/>
            <author fullname="E. Nilsen-Nygaard" initials="E." surname="Nilsen-Nygaard"/>
            <author fullname="A. Tripathy" initials="A." surname="Tripathy"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document provides a Network Configuration Protocol (NETCONF) binding to the dynamic subscription capability of both subscribed notifications and YANG-Push.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8640"/>
          <seriesInfo name="DOI" value="10.17487/RFC8640"/>
        </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>
        <reference anchor="RFC9195">
          <front>
            <title>A File Format for YANG Instance Data</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>There is a need to document data defined in YANG models at design time, implementation time, or when a live server is unavailable. This document specifies a standard file format for YANG instance data, which follows the syntax and semantics of existing YANG models and annotates it with metadata.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9195"/>
          <seriesInfo name="DOI" value="10.17487/RFC9195"/>
        </reference>
        <reference anchor="RFC8525">
          <front>
            <title>YANG Library</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document describes a YANG library that provides information about the YANG modules, datastores, and datastore schemas used by a network management server. Simple caching mechanisms are provided to allow clients to minimize retrieval of this information. This version of the YANG library supports the Network Management Datastore Architecture (NMDA) by listing all datastores supported by a network management server and the schema that is used by each of these datastores.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8525"/>
          <seriesInfo name="DOI" value="10.17487/RFC8525"/>
        </reference>
        <reference anchor="RFC9196">
          <front>
            <title>YANG Modules Describing Capabilities for Systems and Datastore Update Notifications</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines two YANG modules, "ietf-system-capabilities" and "ietf-notification-capabilities".</t>
              <t>The module "ietf-system-capabilities" provides a placeholder structure that can be used to discover YANG-related system capabilities for servers. The module can be used to report capability information from the server at runtime or at implementation time by making use of the YANG instance data file format.</t>
              <t>The module "ietf-notification-capabilities" augments "ietf-system-capabilities" to specify capabilities related to "Subscription to YANG Notifications for Datastore Updates" (RFC 8641).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9196"/>
          <seriesInfo name="DOI" value="10.17487/RFC9196"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ITU-T_G7710" target="https://www.itu.int/rec/T-REC-G.7710">
          <front>
            <title>Common Equipment Management Function Requirements</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
