<?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.30 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yoon-ccamp-pm-streaming-04" 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-04"/>
    <author initials="B. Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </author>
    <author initials="Y." surname="You" fullname="Youngkil You">
      <organization>wooriNet</organization>
      <address>
        <email>young@woori-net.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="15"/>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>performance management</keyword>
    <keyword>streaming</keyword>
    <keyword>measurement</keyword>
    <abstract>
      <?line 63?>

<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 72?>

<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 a list entry keyed by a name of type profile-names (a
string conforming to the format defined in the model). 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 list entries keyed by a structured name
(profile-names type), 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>
        </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 transient-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 ensure 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 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 the threshold crossing event type and occurrence time (parameter values at the time of the event can be read from the operational datastore if needed). 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 2026-02-06 {
    description 
      "Updated transient-condition-config to only support 
       transient-threshold, removing low-threshold support. Transient 
       thresholds do not report low OOR (underflow) conditions, 
       unlike snapshot and tidemarks measurements which support 
       both high and low thresholds.";
    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 snapshot and tidemarks 
       measurement types (high and low thresholds).";
    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 transient-threshold-config {
    description 
      "Threshold configuration for transient conditions. Transient 
       thresholds only support high threshold crossings and report 
       immediately when the count value reaches or crosses the 
       configured transient threshold value. Transient thresholds do 
       not support low threshold (underflow) conditions, unlike 
       snapshot and tidemarks measurements which support both high 
       and low thresholds.";
    leaf transient-threshold {
      type uint32;
      description 
        "Transient threshold that triggers alerts when exceeded. 
         Transient thresholds report immediately when the count value 
         reaches or crosses this threshold value.";
    }
  }

  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 count-transient-event-type {
    description 
      "Transient threshold event type definition for counts 
       measurements. Transient thresholds report immediately when 
       the count value reaches or crosses a configured threshold 
       value.";
    leaf event-type {
      type enumeration {
        enum Threshold-Crossed-Event {
          description 
            "Threshold crossing event generated when count value 
             reaches or crosses the configured threshold value.";
        }
      }
      description 
        "Specifies that a threshold crossing event occurred.";
    }
  }

  grouping triggered-count-transient-event-info {
    description 
      "Combined transient threshold event type and event information 
       for counts measurements. Transient thresholds are independent 
       threshold mechanisms that report immediately when count values 
       cross configured threshold values.";
    uses count-transient-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 over a 
       measurement interval. Supports transient and standing 
       threshold reporting, as defined in G.7710.";
    container counts {
      description 
        "Contains counts measurement values and configuration.";
      container transient-condition-config {
        description 
          "Configuration for transient threshold conditions. Transient 
           thresholds report immediately when the count value reaches 
           or crosses the configured transient threshold value. 
           Transient thresholds do not support low threshold 
           (underflow) conditions, unlike snapshot and tidemarks 
           measurements which support both high and low thresholds.";
        uses transient-threshold-config;
      }
      container standing-condition-config {
        description 
          "Configuration for standing condition monitoring. When 
           both thresholds are set, standing-threshold must be 
           greater than or equal to reset-threshold (hysteresis).";
        must "not(standing-threshold and reset-threshold) or "
           + "standing-threshold >= reset-threshold" {
          error-message
            "Standing threshold must be >= reset threshold.";
        }
        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 at uniform 
       time within each measurement interval. Supports high/low 
       OOR threshold reporting, as defined in G.7710.";
    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 maximum and minimum values over 
       the measurement interval. Supports high/low OOR threshold 
       reporting, as defined in G.7710.";
    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 
      "Grouping for the three core measurement methods (counts, 
       snapshot, tidemarks).";
    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 
      "Transient threshold events for counts measurements. Transient 
       thresholds are independent threshold mechanisms that report 
       immediately when count values cross configured threshold 
       values.";
    container counts-transient {
      description 
        "Contains information about transient threshold events for 
         counts.";
      uses triggered-count-transient-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 when the count value 
               reaches or exceeds the standing-threshold configured 
               in standing-condition-config.";
          }
          enum Reset-Threshold-Report {
            description 
              "Reset Threshold Report (RTR) generated at the end of 
               the period when the count value is at or below the 
               reset-threshold (G.7710 standing condition clear).";
          }
        }
        description 
          "Specifies the type of standing threshold event that 
           occurred, as defined in G.7710. A Threshold-Report (TR) 
           is generated when the measurement-value reaches or 
           exceeds the standing-threshold. A Reset-Threshold-Report 
           (RTR) is generated at the end of the period when the 
           measurement-value is at or below the reset-threshold.";
      }
      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 
      "Grouping for non-periodic performance event parameters 
       (BUT, EUT, CSES).";
    container BUT-event {
      description "Begin Unavailable Time (BUT) event.";
      uses event-state-info;
    }
    container EUT-event {
      description "End Unavailable Time (EUT) event.";
      uses event-state-info;
      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 periodic threshold crossing events and 
       non-periodic performance events (BUT, EUT, CSES).";
    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 performance events (BUT, EUT, CSES).";
      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 transient-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="2025" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="K." surname="Lee" fullname="Kwangkoog Lee">
        <organization>KT</organization>
        <address>
          <email>kwangkoog.lee@kt.com</email>
        </address>
      </contact>
      <contact initials="J." surname="Shin" fullname="Jongyoon Shin">
        <organization>SK Telecom</organization>
        <address>
          <email>jongyoon.shin@sk.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Nam" fullname="Sungyong Nam">
        <organization>LGU+</organization>
        <address>
          <email>sy.nam@lguplus.co.kr</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
+05Ut1ZRTjnWXJqHshjXjeSW8coIrVzugzWn4C5LilczYTHw5ol9qVE/rbuy
Wtdf9AmN9pPU7KHqKPCXsyfA7/aWN/+6ZnbiDFs/yWj77pAO4C+1UKXB7zw2
W2n4r+bPT/+QnYKs7WdIj2vzO4VG6V+eUdFKjcU42CnIg34E//Nxawt2H/xO
vtqOtaEZ+j8bbk+fPJnpuR17sMFfIuvJX8+JAYoIa+EmQuLBPxhuXz2xZxqu
7Y0Le+D415+2jPaPPdNwbbcs3kff1J9/yDGzKKqTBtcjOOYQBc8CodEf85nj
M43Nf9TaTA3HBig3XV0CpX16y9X9uLXZn92vLheLV6H3H3V1tb6lwGrHq3vT
EL8UblglM7bTj1sbScRRuD3dsLYXVoIyZ9p1Cp/66h77I22t7WUgRH36M/1x
8Blo3n1QBtj4Jg6it84aZxwtLTOAE2mwEGnD9SfcuOX7azvTRBSSYqzwpVQb
ZDjxR05U7Tttps8SkTwWedK5WtFp5j1q7klyPKH3cduQ7sHuEd2zqHs1po7N
XgYQaHgsgxdkCWI6DzYgjiFSJDuW3vYvxpfd9i3GnaEezLrDjonJIrADvFCh
D6G1O6yaQHLUMHH3tGOl6Y4rTXdcaaorpcGiy408jCPGtyYPWz+ufdC6ciN3
zvtu2dsQc2WqF6eruHSKFSSHoDPdp1mieSakaLjq5mEZ8qi/15iX10lQhhN3
wGHvYY3Rbi+qtCUgyVn0JCrqJ3ZN1aPQE+2M5T6/qdBASnkc/y5GpGDFS6xI
yQZ06/Q76hywy0qi/WAub9VxcUcmBXcCihxFAIR2idIbCJx5RUqzPuSVRIC+
t57DBP4/Ei0YVPZz5hfklfIONj5lDc5yxs/EbpbMLOodK+Yqvy612C3b5nEZ
93k2Nu6ghG1DtopzxqknvA4yUWFVWLZts8/dxtkJRmJ5IXZKoAeMojfR3+et
9OzN0dBBjM6h0grsbWucaS1ZclIJ5NmayghraMtq6c0+tsq6RteCeFDM0ONO
IV7qCKxyrIIlwTYGJswIQcVfJwqenrM+kUMDTUCPOccnh8tkrNHbhRBLRmgq
SescFV1apcZYVdljq1DKPpZom7LbqLmNA4FBvsi98zfdB8lBfNDLkgIzK4os
Nd062Fl5II5QsxKM2abCUnxjyA/OMA4aCWCYO5dcVUPETFpZWC+ulFKzhlQ4
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
Z79gLdtNtB11+jcT0F1k21gYeExfIDmkVbculGoxmToq1zq5I15cQgZrmoko
N7sB+CDhvEsAzHzB69YkHRKWrdPXlKyCbW2XrcI+hab/9oa1xHf8EZJUsPco
sIe5Mfl3xJcQZ9msUnUgrFPgzi6v0vPXV7fw34s3Tl/zZL8DoTdg86uMsjmt
gX9be78wHLT7Dn3TXP7V69vLF5fnZ7eXr6+8thlUc40Vnu5efCsrL1KbK4wP
rgMdc7P4Eyk70xJ24mmcrRDWKHjjqaL+8nSShY+7QZupBOdmPzTdXXHH5IZr
1UFKPo6YBCL9BoISB8imG/3LyEoXBDpJy2YL8s7khQ8jpC+hSXuLmcQAK9Bs
t61wg+HE400cVxy0GursRmhtXM0vMZzwT6du2wSn80C2Y9UbO9zBoLAJ+Ns2
vNnEEL+7/GOsDs2ddh/MxqPZstZfbHngn41n1Dylnc/J0m5TnzgCgG177HKK
x5JB6vb6rYM85ove/HzLwdnxeNvY3/FgxDK+GeL2r7brSOWXBrfsLnywW+jB
x/Jr2WTcVmKN5T9zT52gfiZWtW33deJCZINoOcyES+k+dslGvCZ5pMnlf5VS
S0tX8kieI15jfgI+23jWcsnWcJ0j0g/f+PbDLZYC4xbjvzRQhJ8FehL9aY/t
XwmMiJurFMsrqKo2aiHTT9u+F309Rquje9q2reiutm0suq9tW9u6s+jmxJQY
I7HyNNOU6AM/6TPdmS9d70VedaTxd5tgYKftdOpvnbXt0/3d1jndyw2Pa1gG
e8OCy7ZDNzjHDSPIqk2/s26oRGKkt26pjYg7wqKNjLvgoV1uM4Jx65RhHZEP
WGtQ/GNHJOs8s62H1ewE1/XYLttPP3b76cduP9Xtx2NHt0/Lb0eDNu3cDQ1f
isXBy/2otp8Eo3c0L3BHt5V7/mQG24mF2hc28dGfQjDswEwbb2zhqD+ZcfiF
3dhq5L2deGv7vQ9nsO0xtnPZn8LBu7bavckN++ze4YZN7rY9N4BRIjqec4/G
OoDGn9+91eVO729oSrF97p36aWzZsu0s+t98x00O/t94qy3+134w/YV7TX/B
Xptz77TX/+mbs236/+mb8zF9c7RtzrzoL02XHOqYg7b5WZiOxdaFvQR2i4WH
SUT57V7M1nCofXQ+Q1v2pVrUzk37bO794Tp1evuYeeaHoAuEK+kfNoFwL6zT
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

-->

</rfc>
