<?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.39 (Ruby 3.3.11) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yoon-ippm-collection-measure-01" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="PM Collection YANG">A YANG Data Model for Performance Monitoring (PM) Collection</title>
    <seriesInfo name="Internet-Draft" value="draft-yoon-ippm-collection-measure-01"/>
    <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>woori-net</organization>
      <address>
        <email>young@woori-net.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="29"/>
    <workgroup>IPPM Working Group</workgroup>
    <keyword>performance monitoring</keyword>
    <keyword>collection</keyword>
    <keyword>YANG</keyword>
    <abstract>
      

<t>This document specifies a YANG data model for the collection of
Performance Monitoring (PM) data, based on the collection
requirements of the performance management function defined in
ITU-T G.7710. The model processes raw performance data sampled at a
network node and produces structured data that can be retrieved by
clients via pull-based mechanisms or delivered via push-based
mechanisms such as YANG-Push. This document does not define new
performance metrics; the base metrics are those of the IPPM
framework, and the model specifies the collection and exposure of
the operationally important subset.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://binyeongyoon-ietf.github.io/ietf-pm-streaming/draft-yoon-ippm-collection-measure.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-yoon-ippm-collection-measure/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/binyeongyoon-ietf/ietf-pm-streaming"/>.</t>
    </note>
  </front>
  <middle>
    

<section anchor="introduction">
      <name>Introduction</name>
      <t>Performance Monitoring (PM) data generated by a Network Element (NE)
undergoes a systematic processing pipeline that transforms raw
observations into actionable operational insights. Traditionally, PM
data has been managed through pull-based mechanisms such as SNMP
polling, but the increasing scale and dynamic nature of modern
networks require a more efficient, streaming-oriented approach.</t>
      <t>This document distinguishes three functional stages of the PM
processing pipeline -- Sampling, Collection, and Reporting -- and
defines a YANG data model <xref target="RFC7950"/> for the Collection stage,
referred to in this document as the PM collection model.</t>
      <t>The Collection-stage data and notifications defined in this model can
be retrieved by clients via pull-based mechanisms (e.g., NETCONF
get-data operations) or delivered via push-based subscription
mechanisms. When push-based delivery is used, the IETF subscribed-
notifications framework <xref target="RFC8639"/>, its YANG Push extension for
datastore updates <xref target="RFC8641"/>, and the NETCONF binding for dynamic
subscriptions <xref target="RFC8640"/> are applicable. These three specifications
together are referred to in the remainder of this document as the
push-based subscription mechanisms.</t>
      <section anchor="pm-processing-pipeline-in-a-network-element">
        <name>PM Processing Pipeline in a Network Element</name>
        <t>The PM processing pipeline considered in this document comprises the
following three stages, as illustrated in <xref target="fig-pm-pipeline"/>.
Stage 2 (Collection) is the scope of this document.</t>
        <figure anchor="fig-pm-pipeline">
          <name>PM Processing Pipeline</name>
          <artwork type="ascii-art"><![CDATA[
  +----------------+    +==================+    +----------------+
  |    Stage 1     |    |     Stage 2      |    |    Stage 3     |
  |    Sampling    |--->|    Collection    |--->|   Reporting    |
  |                |    | (this document)  |    |                |
  | - Physical     |    | - Counts         |    | - YANG-Push    |
  |   layer        |    | - Snapshot       |    |   RFC 8639/    |
  | - OWAMP/TWAMP/ |    | - Tidemarks      |    |   8640/8641    |
  |   STAMP/IOAM   |    | - Thresholding   |    | - OS/NDT/      |
  | - Sensors      |    |                  |    |   AI APP       |
  |                |    |                  |    |                |
  +----------------+    +==================+    +----------------+

  raw samples           processed PM data          delivery
]]></artwork>
        </figure>
        <t>Stage 1 -- Sampling. This stage observes signals or protocol
behaviours to produce raw samples. It encompasses direct
observation of physical-layer signals as well as various OAM-based
techniques. As examples of active measurement protocols that may be
used in this stage, OWAMP <xref target="RFC4656"/>, TWAMP <xref target="RFC5357"/>, and STAMP
<xref target="RFC8762"/> inject synthetic probe packets to measure one-way or
round-trip delay, packet loss, and delay variation, while In-situ OAM
(IOAM) <xref target="RFC9197"/> records performance data directly within user
packets as they traverse the network.</t>
        <t>The Stage 1 sampling techniques above fall into the measurement
method categories defined by the IPPM framework <xref target="RFC7799"/>. Active
methods such as OWAMP <xref target="RFC4656"/>, TWAMP <xref target="RFC5357"/>, and STAMP
<xref target="RFC8762"/> generate and inject synthetic test traffic. Hybrid
methods such as IOAM <xref target="RFC9197"/> augment or observe existing user
traffic in transit. Passive methods, such as direct observation of
physical-layer signals and the reading of protocol counters (for
example interface packet counters), draw solely from traffic and signals already
present, without generating test packets. Environmental sensor
readings (for example temperature or voltage) are not classified by
this axis, because no packet or signal observation is involved.</t>
        <t>The Collection stage defined in this document is method-agnostic:
the counts, snapshot, and tidemarks collection types apply
identically to samples produced by any of these methods, and the
model neither performs nor prescribes the Stage 1 measurement.
However, because the operational meaning of a value depends on how
it was measured -- for example, an active delay measurement reflects
the experience of synthetic probes, whereas a hybrid measurement
reflects that of real user traffic -- the measurement method is
retained as metadata so that a client can interpret, filter, and
aggregate collected values correctly. How this metadata is modelled
is described in <xref target="measurement-method-metadata"/>.</t>
        <t>Stage 2 -- Collection. This stage processes raw samples into
summarised statistics over defined intervals and manages their
retention. Historically, PM collection mechanisms based on SNMP MIBs
used the performance-history textual conventions defined in
<xref target="RFC3593"/>, with the high-capacity variants in <xref target="RFC3705"/>. The
Collection stage modelled in this document follows the common
equipment management function requirements of ITU-T G.7710 and
supports three collection types -- Counts, Snapshot, and Tidemarks --
together with threshold evaluation and the associated periodic and
non-periodic events.</t>
        <t>Stage 3 -- Reporting. This stage delivers Collection-stage data and
notifications to external management systems or controllers. While
traditional pull-based retrieval remains available, this document
assumes the push-based subscription mechanisms introduced above
(<xref target="RFC8639"/>, <xref target="RFC8641"/>, <xref target="RFC8640"/>). The role of the
Collection-stage models defined here is to provide the data structures
that those mechanisms carry. Typical clients of this Reporting stage
include operations systems (OS), network digital twins (NDT), and
AI-driven applications (AI APP), as illustrated in
<xref target="fig-streaming-architecture"/>.</t>
        <figure anchor="fig-streaming-architecture">
          <name>Network Architecture for PM Collection</name>
          <artwork type="ascii-art"><![CDATA[
   +------+  +-----+     +--------+
   |  OS  |  | NDT | ... | AI APP |
   +---+--+  +--+--+     +----+---+
       |        |             |
       |   PM data and notifications
       |   via YANG-Push (RFC 8639/8640/8641)
       |        |             |
   +---+--------+-------------+---+
   |            NE                |
   |  +-----------------------+   |
   |  |  EMF / Collection     |   |
   |  |  (this document)      |   |
   |  +-----------------------+   |
   +------------------------------+

   OS:  Operations System
   NDT: Network Digital Twins
   APP: Application
]]></artwork>
        </figure>
        <t>The YANG data model specified in this document is implemented within
the Equipment Management Function (EMF) of an NE, as defined in
ITU-T G.7710. It is exposed at the NE's management
interface and is consumed by remote clients such as operations
systems (OS), Physical Network Controllers (PNCs), network digital
twins (NDT), and AI-driven applications. Throughout this document
the term "client" refers to any such consumer of the PM collection
interface, regardless of whether it acts as a controller, an
analytics engine, or an operator-facing management system.</t>
        <t>The tree diagrams in this document use the notation defined in
<xref target="RFC8340"/>.</t>
      </section>
      <section anchor="relationship-to-the-ietf-performance-metric-framework">
        <name>Relationship to the IETF Performance Metric Framework</name>
        <t>The three-stage pipeline described above aligns with the framework
for performance metric development given in <xref target="RFC6390"/>. The
Collection stage modelled in this document corresponds to the
Computed Performance Metrics described in Section 5.3 of
<xref target="RFC6390"/>: the Counts and Tidemarks collection types are temporal
aggregations (Section 5.3.1 of <xref target="RFC6390"/>) of base metrics over a
collection interval, while the Snapshot collection type is a
sampled value organised as a singleton in the sense of Section 5.6
of <xref target="RFC6390"/> and the IPPM framework <xref target="RFC2330"/>.</t>
        <t><xref target="fig-collection-rfc-mapping"/> summarises how the three collection
types map onto the result organization of the IPPM framework.</t>
        <figure anchor="fig-collection-rfc-mapping">
          <name>Collection types mapped to RFC 6390 Computed Performance Metrics and the RFC 2330 result organization</name>
          <artwork type="ascii-art"><![CDATA[
+--------------------------------------------------------------------+
| Collection:  counts | snapshot | tidemarks                         |
|                                                                    |
|  +--------------+   +-------------------------------------------+  |
|  |  Snapshot    |   | Computed Performance Metrics              |  |
|  |              |   | (RFC 6390 Sec 5.3 / 5.3.1 aggregation)    |  |
|  | singleton    |   |                                           |  |
|  |              |   |   +---------------+    +----------------+ |  |
|  | (directly    |   |   |   Counts      |    |  Tidemarks     | |  |
|  |  sampled)    |   |   | statistic     |    |  statistic     | |  |
|  |              |   |   |    (sum)      |    | (min / max)    | |  |
|  |              |   |   |               |    |                | |  |
|  +--------------+   |   +---------------+    +----------------+ |  |
|                     +-------------------------------------------+  |
|                                                                    |
+--------------------------------------------------------------------+

RFC 2330 Sec 11 / RFC 6390 Sec 5.6 organize results as:
  singleton = elementary "atomic" value        -> Snapshot
  sample    = a set of singletons (one interval)
  statistic = value computed from a sample      -> Counts, Tidemarks
]]></artwork>
        </figure>
        <t>The base metrics aggregated by this model are produced in Stage 1
(Sampling) and are expected to be specified following the
Performance Metric Specification of Section 5.4 of <xref target="RFC6390"/>.
This document does not define or redefine those base metrics, nor
does it introduce new performance metrics or parameters; it
identifies the operationally important subset
(counts, snapshot, and tidemarks) and defines the YANG structures
that compute, retain, and expose their
aggregated values over the configured collection intervals. The
acceptable ranges of sampling and collection intervals, and the
required timing accuracy called for in Section 5.4.2 of
<xref target="RFC6390"/>, are determined by the parameter profiles defined in
this document, rather than being fixed by the YANG model itself.</t>
        <t>Except where <xref target="RFC6390"/> is explicitly referenced, this document
uses the term "Sampling" for the Stage 1 activity described above
and "Collection" for the Stage 2 activity. A collection interval
(YANG node collection-interval) is the window over which sampled
values are aggregated within the Collection stage; it is distinct
from the sampling interval at which raw values are produced.</t>
      </section>
      <section anchor="motivation-and-scope">
        <name>Motivation and Scope</name>
        <t>The legacy SNMP-based collection conventions <xref target="RFC3593"/>
          <xref target="RFC3705"/> and the associated pull-based polling architecture
limit real-time visibility and flexible interval design at the scale
of modern networks. The push-based subscription mechanisms
<xref target="RFC8639"/> <xref target="RFC8640"/> <xref target="RFC8641"/> provide an efficient and
scalable alternative for streaming management data, but those
specifications define only the subscription and notification
mechanisms themselves and do not prescribe the structure of the PM
data being carried. A standardised YANG data model is therefore
needed at the Collection stage to bridge low-level measurement data
and high-level streaming subscriptions, since existing YANG models
tend to focus on static configuration or simple state data and do
not offer the structures required to express counts, snapshot, and
tidemarks collection together with profile-based parameter grouping
and threshold semantics.</t>
        <t>A further motivation concerns which performance information to
collect and in what form. The IETF performance metric framework
<xref target="RFC6390"/> provides methods for defining and computing metrics,
but the space of possible computed metrics is effectively unbounded
(for example, averages, variances, or percentiles could all be
derived). ITU-T G.7710 <xref target="G7710"/> instead reflects several decades
of operational experience by fixing a deliberately small set of
collection forms and parameters: gauge measurements
are limited to snapshots (an instantaneous value) and tidemarks (the
maximum and minimum), and counts to a simple accumulation, rather
than general statistical aggregations; and the collected parameters
are confined
to an operational set such as ES, SES, BBE, BBC, and UAS for
maintenance and quality-of-service purposes. The collection types
are themselves defined as the form in which results are stored,
independent of the collection interval. This document adopts that
operationally-validated minimal set, rather than attempting to
enumerate all statistically possible metrics, so that the resulting
YANG model expresses what network operators actually need to retain
and expose for fault management, maintenance, and SLA evaluation.
This is also why the model is parameter-agnostic in structure: it
standardises the collection forms (counts, snapshot, tidemarks) and
leaves the specific parameters to be referenced from <xref target="G7710"/> and
related Recommendations.</t>
        <t>The scope of this document is therefore limited to the Collection
stage. Within that scope, this document specifies YANG data models
that enable: (a) flexible processing of performance metrics beyond
simple counts, including Snapshot and Tidemarks; (b) configurable sampling and collection intervals
that are not restricted to the legacy 15-minute or 24-hour windows;
and (c) data and notification structure that supports flexible
delivery of processed PM data to management systems, compatible
with both pull-based retrieval and push-based subscription
mechanisms.</t>
        <t>The Collection-stage data and notifications defined here are
compatible with the existing YANG-Push framework
(<xref target="RFC8639"/>, <xref target="RFC8640"/>, <xref target="RFC8641"/>) for push-based delivery
as well as with traditional pull-based retrieval via NETCONF or
RESTCONF; this document does not define any new subscription or
notification mechanism, only the pm-threshold-events notification
content, carried over those existing mechanisms.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in
all capitals, as shown here.</t>
      </section>
    </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 ITU-T G.7710, 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>
        <t>The data model defined in this document is parameter-agnostic: it
specifies how performance parameters are collected, aggregated, and
exposed, rather than defining the parameters themselves. Each
performance parameter is expected to be specified following the Performance Metric
Specification template of Section 5.4.4 of <xref target="RFC6390"/> (metric
name, description, method of measurement or calculation, units,
measurement point, and measurement timing). The parameters listed
above are illustrative and are not themselves defined by this
document; the specification of any such
parameter is left to the relevant standards body.</t>
        <section anchor="parameter-identities">
          <name>Parameter Identities</name>
          <t>This module defines the base identity <tt>performance-parameter</tt>. The
key of each <tt>pm-parameter</tt> entry is an <tt>identityref</tt> whose base is
this identity. Specific parameters are defined as identities derived
from it in other modules; parameters of specific network
technologies are defined in the same way in other documents, by the
relevant standards body. Identity-based typing lets a
server validate the parameters a client configures and lets clients
interpret collected values consistently across vendors.</t>
        </section>
      </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           identityref
]]></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, a maintenance profile may group the error
counters of an interface that are monitored together for fault
detection, and a QoS profile may group 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.</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
collection interval. This naming structure supports clarity,
modularity, and automation across diverse network and service
layers.</t>
          <t>The naming follows this format:</t>
          <sourcecode type="txt"><![CDATA[
<source>-<network>-<purpose>[-<characteristic>]
]]></sourcecode>
          <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, example, 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>example-ip-qos-15min</t>
            </li>
            <li>
              <t>example-ip-qos-24hr</t>
            </li>
            <li>
              <t>example-mobile-availability-24hr</t>
            </li>
            <li>
              <t>vendorx-otn-sla</t>
            </li>
          </ul>
          <t>Note: profile names that begin with <tt>ietf-</tt> are reserved for
profiles that IETF actually defines; placeholder examples in this
document use <tt>example-</tt> to avoid implying IETF endorsement of
profiles not yet specified.</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="measurement-method-metadata">
        <name>Measurement Method Metadata</name>
        <t>Each <tt>pm-parameter</tt> entry MAY carry an optional <tt>measurement-method</tt>
leaf that records the IPPM measurement method <xref target="RFC7799"/> by which
the parameter's Stage 1 samples are produced. The leaf is an
<tt>identityref</tt> whose base identity is <tt>measurement-method</tt>, with the
derived identities <tt>active</tt>, <tt>passive</tt>, and <tt>hybrid</tt> corresponding to
the categories of <xref target="RFC7799"/>.</t>
        <figure anchor="fig-method-tree">
          <name>measurement-method leaf within pm-parameter</name>
          <artwork type="ascii-art"><![CDATA[
+--rw pm-parameter* [name]
   +--rw name                 identityref
   +--rw measurement-method?  identityref
   +--rw sampling-interval* [id]
      ...
]]></artwork>
        </figure>
        <t>The leaf is optional for three reasons. First, it preserves backward
compatibility with servers and configurations that do not populate
it. Second, some parameters (for example environmental sensor values
such as temperature or voltage) are not meaningfully classified by
the active/passive/hybrid axis. Third, the Collection stage operates
independently of the measurement method, so the leaf conveys
interpretation metadata rather than affecting collection behaviour.</t>
        <t>The measurement method corresponds to the "method of measurement or
calculation" element of the Performance Metric Specification template
in Section 5.4.4 of <xref target="RFC6390"/>. Carrying it alongside the collected
value lets a client (a) interpret the value in the correct
operational context, (b) keep homogeneous data sets when comparing or
aggregating values across network elements, and (c) reason about the
intrusiveness of the measurement, since active methods inject
synthetic traffic while passive methods do not.</t>
        <t>Because the leaf resides within <tt>pm-parameter</tt>, the method
information is inherited by every sampling interval, collection
interval, and collection type beneath that parameter, and is
therefore associated with the corresponding value both in pull-based
retrieval and in push-based notifications, without requiring any
per-notification tag.</t>
      </section>
    </section>
    <section anchor="periodic-collection">
      <name>Periodic Collection</name>
      <section anchor="interval-timing">
        <name>Interval Timing</name>
        <figure anchor="fig-interval-tree">
          <name>Sampling and Collection 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 collection-interval* [id]
      +--rw id                string
      +--rw interval-value?   uint32
      +--rw unit?             time-interval-unit
]]></artwork>
        </figure>
        <t>Interval timing parameters are key components of network
performance monitoring, offering standardized definitions for the
time-related aspects of sampling, collection, and reporting
performance data. These parameters apply to the three main
collection types for network equipment: counts, snapshot, and
tidemarks. They include the sampling interval, collection
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. The sampled
values are the input of the Collection stage, so collection is
always performed on the samples of a sampling interval: in the
model, a collection interval exists only within a sampling interval
entry.</t>
        <t>Collection 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. Both interval values are positive.</t>
        <t>Uniform time is a fixed, predefined point within each collection
interval at which a snapshot 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>
        <t>The acceptable ranges of sampling and collection intervals, and
the timing accuracy required for a given parameter, are not fixed by
this YANG model. As noted in Section 5.4.2 of <xref target="RFC6390"/>, these
constraints are part of the specification of each performance
metric; in this document they are determined by the parameter
profile in use, and a server advertises the intervals
it supports as part of its capabilities.</t>
        <section anchor="use-cases">
          <name>Use Cases</name>
          <t>The hierarchical design of the <tt>ietf-pm-collection</tt> YANG module,
where a performance parameter can be associated with one or more
sampling intervals and each sampling interval can be associated
with multiple collection intervals and collection types, supports
a wide range of operational objectives. A key benefit of this
structure is that, even when the sampling interval is fixed,
different collection intervals can be used to derive distinct
operational views of the same parameter. The collection type is
selected to match the semantics of the monitored parameter: counts
for cumulative event parameters, tidemarks for varying parameters
where extremes are operationally significant, and snapshot for
point-in-time operating state.</t>
          <t>In a Network Operations Center (NOC), the number of lost packets
can be sampled every second and processed with multiple collection
intervals using the counts collection type. A 1-minute collection
interval supports rapid fault indication, enabling fast recognition
of service degradation. A 15-minute collection interval supports
routine maintenance monitoring and aligns with established
operational practice. A 24-hour
collection interval supports daily QoS reporting and provides a
broader view of service quality over time.</t>
          <t>For latency monitoring in a NOC, a parameter may be sampled every
500 milliseconds and processed using the tidemarks collection type.
A 1-minute collection interval helps detect short-lived delay
spikes. A 30-minute collection interval helps identify recurring
burst patterns that affect path stability. A 24-hour collection
interval provides a daily worst-case view of path quality,
supporting operational assessment of persistent delay behavior.</t>
          <t>For digital twin applications, packet delay variation (PDV) may be
sampled every 100 milliseconds and processed using the tidemarks
collection type. A 1-minute collection interval provides a
synchronization stability envelope that helps the digital twin
remain closely aligned with the physical network. A 5-minute
collection interval supports feedback-loop tuning by capturing
short-term variation patterns that influence control adjustments.
A 1-hour collection interval supports model calibration by
providing longer-span information about the range of delay
variation observed in operation.</t>
          <t>Environmental monitoring also benefits from the same hierarchical
timing structure. For example, temperature may be sampled every
10 seconds and processed using the snapshot collection type. A
1-minute collection interval supports a current operating state
check. A 15-minute collection interval supports periodic baseline
comparison. A 24-hour collection interval supports daily
fleet-wide correlation at a common observation point, helping
operators compare equipment behavior across systems and sites.</t>
          <t>Similar timing structures can also support AI/ML pipelines, where
short, medium, and long collection intervals applied to the same
sampled parameter provide feature sets for anomaly detection,
trend analysis, and model training within a single analytics
application.</t>
          <t>These examples show that the same sampling interval can support
multiple operational purposes when paired with different
collection intervals, and that the collection type should match
the semantics of the monitored parameter. The hierarchical list
structure, where parameters contain multiple sampling intervals
and each sampling interval defines one or more collection
intervals and collection types, supports operational flexibility,
avoids configuration duplication, and enables fine-grained control
of measurement strategies. The use cases summarized in
<xref target="tab-usecases"/> are consistent with the collection types defined
in <xref target="collection-types"/>, where counts represent cumulative event
occurrences, snapshot represents point-in-time values, and
tidemarks represent interval extremes.</t>
          <table anchor="tab-usecases">
            <name>Use cases by sampling interval, collection interval, and collection type</name>
            <thead>
              <tr>
                <th align="left">Client (param)</th>
                <th align="left">Samp.</th>
                <th align="left">Coll. interval</th>
                <th align="left">Type</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">NOC (loss)</td>
                <td align="left">1s</td>
                <td align="left">1min</td>
                <td align="left">counts</td>
                <td align="left">Rapid fault alert</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">1s</td>
                <td align="left">15min</td>
                <td align="left">counts</td>
                <td align="left">Maintenance</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">1s</td>
                <td align="left">24hr</td>
                <td align="left">counts</td>
                <td align="left">Daily QoS report</td>
              </tr>
              <tr>
                <td align="left">NOC (latency)</td>
                <td align="left">500ms</td>
                <td align="left">1min</td>
                <td align="left">tidemarks</td>
                <td align="left">Delay spike detect</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">500ms</td>
                <td align="left">30min</td>
                <td align="left">tidemarks</td>
                <td align="left">Burst pattern obs.</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">500ms</td>
                <td align="left">24hr</td>
                <td align="left">tidemarks</td>
                <td align="left">Daily worst-case</td>
              </tr>
              <tr>
                <td align="left">Digital Twin</td>
                <td align="left">100ms</td>
                <td align="left">1min</td>
                <td align="left">tidemarks</td>
                <td align="left">Sync stability</td>
              </tr>
              <tr>
                <td align="left">(PDV)</td>
                <td align="left">100ms</td>
                <td align="left">5min</td>
                <td align="left">tidemarks</td>
                <td align="left">Feedback tuning</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">100ms</td>
                <td align="left">1hr</td>
                <td align="left">tidemarks</td>
                <td align="left">Model calibration</td>
              </tr>
              <tr>
                <td align="left">NOC (temp)</td>
                <td align="left">10s</td>
                <td align="left">1min</td>
                <td align="left">snapshot</td>
                <td align="left">State check</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">10s</td>
                <td align="left">15min</td>
                <td align="left">snapshot</td>
                <td align="left">Periodic baseline</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">10s</td>
                <td align="left">24hr</td>
                <td align="left">snapshot</td>
                <td align="left">Fleet-wide daily</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="collection-types">
        <name>Collection Types</name>
        <figure anchor="fig-collection-types-tree">
          <name>Collection Types Subtree</name>
          <artwork type="ascii-art"><![CDATA[
+--rw collection-types
   +--rw counts!
   |  +--rw transient-condition-config
   |  |  +--rw transient-threshold?   uint32
   |  +--rw standing-condition-config
   |  |  +--rw standing-threshold?    uint32
   |  |  +--rw reset-threshold?       uint32
   |  +--ro collection-value?        uint32
   +--rw snapshot!
   |  +--rw uniform-time-config
   |  |  +--rw offset-value?          uint32
   |  |  +--rw unit?                  time-interval-unit
   |  +--rw threshold-config
   |  |  +--rw high-threshold?        uint32
   |  |  +--rw low-threshold?         uint32
   |  +--ro collection-value?        uint32
   +--rw tidemarks!
      +--rw threshold-config
      |  +--rw high-threshold?        uint32
      |  +--rw low-threshold?         uint32
      +--ro high-collection-value?   uint32
      +--ro low-collection-value?    uint32
]]></artwork>
        </figure>
        <t>The collection types establish a
focused and efficient framework for network performance monitoring
by specifying three core collection types: counts, snapshot, and
tidemarks.</t>
        <t>Each collection type is a presence container. The presence of the
<tt>counts</tt>, <tt>snapshot</tt>, or <tt>tidemarks</tt> container in a
<tt>collection-interval</tt> entry indicates that the server collects that
collection type for the parameter over that interval; its absence
indicates that it does not. A client therefore selects the
collection types of a parameter by creating the corresponding
containers, and a profile can restrict a parameter to a subset of
the three types (for example, counts only for a QoS profile).</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. The counts and snapshot collection types
provide immediate operational data without incurring the processing
overhead associated with metrics like averages and variances. 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 collection types 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 collection types offer
sufficient expressiveness to support comprehensive performance
monitoring without excessive resource use. They are specifically
optimized for the NE-to-client interface -- referred to as the
Southbound Interface (SBI) from a controller perspective (e.g.,
between a Physical Network Controller (PNC) and an NE), or
equivalently as the northbound management interface from the NE's
perspective -- 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 collection types 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>
        <t>In terms of the performance metric framework of <xref target="RFC6390"/>, the
three collection types correspond to the following operations, as
summarised in <xref target="tab-collection-rfc6390"/>.</t>
        <table anchor="tab-collection-rfc6390">
          <name>Collection Types Mapped to RFC 6390</name>
          <thead>
            <tr>
              <th align="left">Collection type</th>
              <th align="left"> operation</th>
              <th align="left">Note</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">counts</td>
              <td align="left">Temporal aggregation (Section 5.3.1): cumulative sum over the collection interval</td>
              <td align="left">Resets at the end of each interval</td>
            </tr>
            <tr>
              <td align="left">snapshot</td>
              <td align="left">Sampled value at a uniform time within the interval</td>
              <td align="left">Organised as a singleton (Section 5.6 of <xref target="RFC6390"/>; <xref target="RFC2330"/>)</td>
            </tr>
            <tr>
              <td align="left">tidemarks</td>
              <td align="left">Temporal aggregation (Section 5.3.1): minimum and maximum over the interval</td>
              <td align="left">High and low values retained per interval</td>
            </tr>
          </tbody>
        </table>
        <t>The counts and tidemarks types are computed (aggregated) metrics in
the sense of Section 5.3 of <xref target="RFC6390"/>, whereas the snapshot type
is a directly sampled value rather than an aggregation.</t>
        <section anchor="counts">
          <name>Counts</name>
          <t>The counts collection type in network performance monitoring tracks the
cumulative occurrences of specific events over a defined
collection 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 collection type is
particularly useful for long-term analysis, enabling preventive
maintenance and optimizing network performance. Unlike
instantaneous values, 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 value 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
network. Snapshots are collected at pre-determined
uniform times within fixed collection 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>The tidemarks collection type records the maximum (high tidemarks) and
minimum (low tidemarks) values that a performance parameter
reaches during a specified collection interval. This approach
captures the extreme values and performance fluctuations,
highlighting the best and worst conditions that occur within the
monitoring period. Tidemarks 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
tidemark could reveal intermittent spikes in errors that require
attention. Conversely, a low tidemark may expose periods of
severely degraded signal quality or throughput.</t>
        </section>
      </section>
    </section>
    <section anchor="interval-data-validity">
      <name>Collection Interval Data Validity</name>
      <t>The collection types above summarise the samples that were
available during a collection interval. When some of the expected
Stage 1 samples are missing -- because of telemetry loss, partial
node support, a state reset, an equipment restart, a change of
interval timing, or suspension of collection -- the summarised
value is still a valid number, but it does not carry the same
meaning as a value computed over a complete interval. In
particular, a numeric zero computed from no valid samples must not
be mistaken for a measured zero. This section defines the metadata
that lets a client tell these cases apart. The metadata is part of
the Collection stage rather than of any delivery mechanism, so it
applies identically to pull-based retrieval and to push-based
delivery.</t>
      <figure anchor="fig-interval-status-tree">
        <name>Interval Data Status Subtree</name>
        <artwork type="ascii-art"><![CDATA[
+--rw collection-interval* [id]
   +--rw id                 string
   ...
   +--ro interval-data-status
   |  +--ro suspect-interval-flag?    boolean
   |  +--ro interval-status?          interval-status
   |  +--ro suspect-reason*           identityref
   |  +--ro expected-sample-count?    uint64 {coverage-counters}?
   |  +--ro received-sample-count?    uint64 {coverage-counters}?
   |  +--ro elapsed-time?             uint32
   |  +--ro interval-start-time?      yang:date-and-time
   |  +--ro interval-end-time?        yang:date-and-time
   +--rw collection-types
      ...
]]></artwork>
      </figure>
      <section anchor="suspect-interval-flag">
        <name>Suspect Interval Flag</name>
        <t>The <tt>suspect-interval-flag</tt> follows the suspect interval flag of
ITU-T G.7710. It is initialised to
"false" at the start of each collection interval and is set to
"true" whenever the data stored for the interval may be
unreliable: when one or more periodic samples are missing, when
collection state is reset, when the equipment restarts during the
interval, when interval timing is changed, or when collection is
suspended. A client that reads or receives a value together with
a suspect flag of "true" knows that the value should be treated
with caution.</t>
        <t>For the snapshot collection type the initialisation is inverted:
the flag is set to "true" at the start of
the interval to indicate that no snapshot has yet been taken, and
is cleared to "false" once the single snapshot has been taken at
the uniform time.</t>
      </section>
      <section anchor="interval-status-and-the-meaning-of-zero">
        <name>Interval Status and the Meaning of Zero</name>
        <t>The optional <tt>interval-status</tt> leaf refines the boolean flag into
three cases: "complete" (all expected samples were available),
"partial" (some samples were missing but at least one valid
sample was collected), and "unavailable" (no valid sample was
collected). Whenever <tt>interval-status</tt> is not "complete", the
<tt>suspect-interval-flag</tt> is "true". The optional <tt>suspect-reason</tt>
leaf-list carries zero or more reasons, when known, drawn from an
extensible set of identities (telemetry loss, partial node
support, state reset, restart, time adjustment, measurement
suspension, measurement boundary, and outage).</t>
        <t>To remove the ambiguity between a measured zero and an absent
value, a server MUST NOT instantiate the collection-value leaf
(the <tt>collection-value</tt> of counts and snapshot, or the high and
low collection values of tidemarks) for an interval whose
<tt>interval-status</tt> is "unavailable". Because these leaves are
optional, their absence is the natural encoding of "no data", and
a <tt>collection-value</tt> that is present and zero is therefore always
a measured zero. For a "partial" interval the value is reported
together with the coverage counters described below, and a partial
<tt>counts</tt> value is interpreted as a lower bound on the true count
for the interval.</t>
      </section>
      <section anchor="coverage-elapsed-time-and-interval-timestamps">
        <name>Coverage, Elapsed Time, and Interval Timestamps</name>
        <t>When the server implements the <tt>coverage-counters</tt> feature, the
<tt>expected-sample-count</tt> and <tt>received-sample-count</tt> leaves report
how many Stage 1 samples were expected (for a complete interval,
approximately the collection interval divided by the sampling
interval) and how many valid samples were actually collected, so
that a client can gauge the coverage of a partial interval. These
sample counts apply to any sampled parameter and are most
meaningful for periodically sampled (gauge) parameters such as
tidemarks; they are not defined by ITU-T G.7710 and generalize
its coverage notion for this model. The <tt>elapsed-time</tt> leaf gives
the number of seconds of the interval that have been processed by
the measurement -- not the sum of available time, since it
advances during unavailable time as well. The
<tt>interval-start-time</tt> and <tt>interval-end-time</tt> leaves record when
the interval began and ended; <tt>interval-end-time</tt> is the
end-of-interval timestamp and is the
authoritative measurement time, to be used for correlation in
preference to the notification envelope eventTime.</t>
      </section>
      <section anchor="retained-interval-data">
        <name>Retained Interval Data</name>
        <t>This model distinguishes the current interval from retained
intervals. The current interval is the interval in progress; its
value (the <tt>collection-value</tt> of counts and snapshot, or the high
and low values of tidemarks) and its <tt>interval-data-status</tt> are
always available and are read or delivered as the interval
advances. A retained interval is a completed interval whose result
the server keeps for a bounded time after the interval ends.</t>
        <t>This model does not require a server to retain completed intervals.
When results are delivered as each interval ends, retention of past
results is a client-side concern. When a server does retain
completed intervals, the number it keeps bounds both how many
completed intervals a client may read back and how long a reporting
period may be.</t>
        <t>The validity metadata that describes an interval -- the suspect
flag, the sample coverage, the elapsed time, and the start and end
timestamps -- is carried in <tt>interval-data-status</tt> and accompanies
the value whether the interval is the current interval or a
retained one, so it is independent of how the data is delivered.</t>
      </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 collection
of the counts, snapshot, and tidemarks collection types for
performance parameters.</t>
        <t>The counts collection type has two types of threshold reporting
methods: transient and standing condition methods. The transient
condition method treats each collection interval separately. As
soon as a threshold is reached or crossed in a collection
interval for a given performance parameter, 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. In the terms of
<xref target="interval-data-validity"/>, this "no unavailable time" condition
is expressed by the suspect-interval-flag: an RTR is not generated
for an interval whose suspect-interval-flag is set.</t>
        <t>For the gauge collection types ("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
collection types (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="data-access">
      <name>Data Access</name>
      <t>Clients can access PM parameter values produced by the counts,
snapshot, and tidemarks collection types using either pull-based
retrieval or push-based subscription mechanisms. This section
provides practical examples for both access patterns. This document
does not define any new retrieval operation or subscription
mechanism; the examples below use only standard NETCONF operations
and YANG-Push RPCs and notifications. The data retrieved or
delivered is used for maintenance and Quality of Service (QoS)
monitoring in networks.</t>
      <section anchor="example-module">
        <name>Example Module</name>
        <t>The examples in this document use the example module shown in
<xref target="fig-example-module"/>.  It defines two example parameters:
"ex:lost-packets", an event parameter used with the counts
collection type, and "ex:one-way-delay", a gauge parameter measured
with IOAM <xref target="RFC9197"/> and used with the snapshot and tidemarks
collection types.  Parameters of
specific network technologies are defined in other documents in the
same way.</t>
        <figure anchor="fig-example-module">
          <name>Example Module Used in the Examples</name>
          <sourcecode type="yang"><![CDATA[
module example-pm-parameters {
  yang-version 1.1;
  namespace "urn:example:pm-parameters";
  prefix ex;

  import ietf-pm-collection {
    prefix pm-co;
    reference
      "RFC XXXX: A YANG Data Model for Performance Monitoring (PM)
       Collection";
  }

  organization
    "Example organization";
  contact
    "Example contact";
  description
    "This module defines example performance parameters, derived
     from the performance-parameter base identity of
     ietf-pm-collection, for use in the examples of this
     document only.  It is not intended for implementation.
     Parameters of specific network technologies are defined in
     other documents in the same way.";

  revision 2026-10-29 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Data Model for Performance Monitoring (PM)
       Collection";
  }

  identity lost-packets {
    base pm-co:performance-parameter;
    description
      "Example event parameter: the number of packets lost in
       each sampling interval.  It is used with the counts
       collection type.";
  }

  identity one-way-delay {
    base pm-co:performance-parameter;
    description
      "Example gauge parameter: the mean one-way delay, in
       microseconds, of the packets measured with In situ OAM
       (IOAM) in each sampling interval.  It is used with the
       snapshot and tidemarks collection types.";
    reference
      "RFC 9197: Data Fields for In Situ Operations,
       Administration, and Maintenance (IOAM)";
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="polling">
        <name>Pull-Based Polling</name>
        <t>The operational state data defined in this document can be
retrieved by clients using standard NETCONF or RESTCONF operations,
providing a pull-based access pattern analogous to traditional SNMP
polling.</t>
        <t>In traditional SNMP-based PM collection, a management system
periodically issues GET or GET-BULK requests to retrieve counter
values from the agent's MIB, such as the performance-history MIBs
defined in <xref target="RFC3593"/> and <xref target="RFC3705"/>. The YANG data model
defined here provides equivalent data structures accessible via
NETCONF <tt>&lt;get-data&gt;</tt> operations <xref target="RFC8526"/> against the
operational datastore <xref target="RFC8342"/>, or via RESTCONF HTTP GET requests, at any polling
interval chosen by the client.</t>
        <t>The <tt>collection-value</tt> leaf (config false) in the counts
collection type, and the corresponding value leaves in
snapshot and tidemarks, are read-only operational state nodes that
reflect the current accumulated or instantaneous PM values within
the active collection interval. These leaves are the YANG
equivalents of SNMP counter and gauge objects in classical PM MIBs.</t>
        <t><xref target="fig-polling-example"/> shows a NETCONF <tt>&lt;get-data&gt;</tt> request that
retrieves the current count of the <tt>ex:lost-packets</tt> parameter
(see <xref target="example-module"/>) in the <tt>example-ip-qos-15min</tt>
profile, sampled every second over a 15-minute collection interval. A client may issue this
request at any time to read the in-progress counter value, or at
the end of each collection interval to collect the final result,
replicating the behavior of a traditional SNMP polling cycle.</t>
        <figure anchor="fig-polling-example">
          <name>Pull-Based Polling Request Example (NETCONF get-data)</name>
          <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     message-id="401">
  <get-data
      xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <pm-periodic-collection
          xmlns="urn:ietf:params:xml:ns:yang:ietf-pm-collection"
          xmlns:ex="urn:example:pm-parameters">
        <parameter-profile>
          <name>example-ip-qos-15min</name>
          <pm-parameter>
            <name>ex:lost-packets</name>
            <sampling-interval>
              <id>1s</id>
              <collection-interval>
                <id>15min</id>
                <collection-types>
                  <counts>
                    <collection-value/>
                  </counts>
                </collection-types>
              </collection-interval>
            </sampling-interval>
          </pm-parameter>
        </parameter-profile>
      </pm-periodic-collection>
    </subtree-filter>
  </get-data>
</rpc>
]]></sourcecode>
        </figure>
        <t><xref target="fig-polling-reply"/> shows the corresponding reply, in which the
server returns the current count of 7 accumulated during the
collection interval in progress. This is equivalent to the value
that a classical SNMP GET would retrieve from a performance-history
MIB object.</t>
        <figure anchor="fig-polling-reply">
          <name>Pull-Based Polling Reply Example (NETCONF get-data)</name>
          <sourcecode type="xml"><![CDATA[
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
           message-id="401">
  <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda">
    <pm-periodic-collection
        xmlns="urn:ietf:params:xml:ns:yang:ietf-pm-collection"
        xmlns:ex="urn:example:pm-parameters">
      <parameter-profile>
        <name>example-ip-qos-15min</name>
        <pm-parameter>
          <name>ex:lost-packets</name>
          <sampling-interval>
            <id>1s</id>
            <collection-interval>
              <id>15min</id>
              <collection-types>
                <counts>
                  <collection-value>7</collection-value>
                </counts>
              </collection-types>
            </collection-interval>
          </sampling-interval>
        </pm-parameter>
      </parameter-profile>
    </pm-periodic-collection>
  </data>
</rpc-reply>
]]></sourcecode>
        </figure>
      </section>
      <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 periodically collected PM 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-sub-example"/> shows a periodic subscription
<xref target="RFC8641"/> to the operational datastore for the <tt>ex:lost-packets</tt>
parameter in the <tt>example-ip-qos-15min</tt> profile. The
XPath filter
selects the 15-minute collection interval entry, sampled every
second, including its collection values and interval data status.
The period is expressed in centiseconds: 90000 (900 seconds), so
that an update is sent once per collection interval.</t>
        <figure anchor="fig-periodic-sub-example">
          <name>Periodic Event Subscription Example</name>
          <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     message-id="101">
  <establish-subscription
      xmlns=
        "urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
      xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push"
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <yp:datastore>ds:operational</yp:datastore>
    <yp:datastore-xpath-filter
        xmlns:pm-co="urn:ietf:params:xml:ns:yang:ietf-pm-collection"
        xmlns:ex="urn:example:pm-parameters">
      /pm-co:pm-periodic-collection/
        parameter-profile[name='example-ip-qos-15min']/
        pm-parameter[name='ex:lost-packets']/
        sampling-interval[id='1s']/
        collection-interval[id='15min']
    </yp:datastore-xpath-filter>
    <encoding>encode-xml</encoding>
    <yp:periodic>
      <yp:period>90000</yp:period>
      <yp:anchor-time>2026-07-01T00:00:00Z</yp:anchor-time>
    </yp:periodic>
  </establish-subscription>
</rpc>
]]></sourcecode>
        </figure>
        <t><xref target="fig-periodic-notif-example"/> shows the resulting "push-update"
notification <xref target="RFC8641"/> for the subscription, whose identifier
returned by the server is 39. It reports the counts collection
value of the <tt>ex:lost-packets</tt> parameter in the
<tt>example-ip-qos-15min</tt> profile, sampled every second
and aggregated over a 15-minute interval. The collected value (10)
represents the total number of lost packets in that period. The accompanying interval-data-status shows
that the interval is complete and not suspect, so the value is a
fully measured result.</t>
        <figure anchor="fig-periodic-notif-example">
          <name>Periodic Update Notification Example (push-update)</name>
          <sourcecode type="xml"><![CDATA[
<notification
    xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2026-07-01T00:15:00Z</eventTime>
  <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <id>39</id>
    <datastore-contents>
      <pm-periodic-collection
          xmlns="urn:ietf:params:xml:ns:yang:ietf-pm-collection"
          xmlns:ex="urn:example:pm-parameters">
        <parameter-profile>
          <name>example-ip-qos-15min</name>
          <pm-parameter>
            <name>ex:lost-packets</name>
            <sampling-interval>
              <id>1s</id>
              <collection-interval>
                <id>15min</id>
                <interval-value>15</interval-value>
                <unit>minute</unit>
                <interval-data-status>
                  <suspect-interval-flag
                    >false</suspect-interval-flag>
                  <interval-status>complete</interval-status>
                </interval-data-status>
                <collection-types>
                  <counts>
                    <collection-value>10</collection-value>
                  </counts>
                </collection-types>
              </collection-interval>
            </sampling-interval>
          </pm-parameter>
        </parameter-profile>
      </pm-periodic-collection>
    </datastore-contents>
  </push-update>
</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. The
threshold events defined in this document are carried in the
"pm-threshold-events" YANG notification; they are events, not
datastore data. A client therefore receives them by subscribing to
an event stream, such as the "NETCONF" event stream, using
subscribed notifications <xref target="RFC8639"/>, rather than by a YANG-Push
datastore subscription <xref target="RFC8641"/>.</t>
        <section anchor="periodic-threshold-events">
          <name>Periodic Threshold Events</name>
          <figure anchor="fig-periodic-thr-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 collection types 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, reported in the
"counts-transient", "counts-standing", "snapshot", and "tidemarks"
containers: transient threshold crossings of counts, standing
threshold reports (TR and RTR) of counts, and out-of-range
crossings of snapshot and tidemarks values. 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-sub-example"/> shows an example of the NETCONF
request to subscribe to all pm-threshold-events notifications in
the <tt>ietf-pm-collection</tt> model on the "NETCONF" event stream. No
datastore and no period are given, because event notifications are
sent when the events occur.</t>
          <figure anchor="fig-threshold-sub-example">
            <name>Threshold Event Subscription Example</name>
            <sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     message-id="202">
  <establish-subscription
      xmlns=
        "urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
    <stream>NETCONF</stream>
    <stream-xpath-filter
        xmlns:pm-co="urn:ietf:params:xml:ns:yang:ietf-pm-collection">
      /pm-co:pm-threshold-events
    </stream-xpath-filter>
    <encoding>encode-xml</encoding>
  </establish-subscription>
</rpc>
]]></sourcecode>
          </figure>
          <t><xref target="fig-threshold-notif-example"/> reports a high-OOR-event threshold
crossing for the tidemarks collection type of the
<tt>ex:one-way-delay</tt> parameter in the
<tt>example-ip-qos-15min</tt> profile, with 1-second sampling
and 15-minute collection interval. It shows the event type,
occurrence, and timestamp as defined in the YANG model.</t>
          <figure anchor="fig-threshold-notif-example">
            <name>Threshold Event Notification Example</name>
            <sourcecode type="xml"><![CDATA[
<notification
    xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2026-07-01T00:05:23Z</eventTime>
  <pm-threshold-events
      xmlns="urn:ietf:params:xml:ns:yang:ietf-pm-collection"
      xmlns:ex="urn:example:pm-parameters">
    <periodic-events>
      <parameter-profile>
        <name>example-ip-qos-15min</name>
        <pm-parameter>
          <name>ex:one-way-delay</name>
          <sampling-interval>
            <id>1s</id>
            <interval-value>1</interval-value>
            <unit>second</unit>
            <collection-interval>
              <id>15min</id>
              <interval-value>15</interval-value>
              <unit>minute</unit>
              <event-types>
                <tidemarks>
                  <event-type>High-OOR-event</event-type>
                  <event-occurred>true</event-occurred>
                  <event-time>2026-07-01T00:05:23Z</event-time>
                </tidemarks>
              </event-types>
            </collection-interval>
          </sampling-interval>
        </pm-parameter>
      </parameter-profile>
    </periodic-events>
  </pm-threshold-events>
</notification>
]]></sourcecode>
          </figure>
        </section>
        <section anchor="non-periodic-threshold-events">
          <name>Non-Periodic Threshold Events</name>
          <figure anchor="fig-nonperiodic-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 collection
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 collection.</t>
        </section>
      </section>
    </section>
    <section anchor="yang-data-model">
      <name>YANG Data Model</name>
      <t>The YANG module for PM collection is defined below. It imports
<tt>ietf-yang-types</tt> <xref target="RFC6991"/>.</t>
      <sourcecode type="yang" markers="true" name="ietf-pm-collection@2026-10-29.yang"><![CDATA[
module ietf-pm-collection {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-pm-collection";
  prefix pm-co;

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

  organization
    "IETF IP Performance Metrics (ippm) Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ippm/>
     Editor: Bin Yeong Yoon <mailto:byyun@etri.re.kr>";
  description
    "This YANG module defines a data model for the collection of
     performance monitoring (PM) data in network equipment, based
     on ITU-T G.7710.  It specifies three core collection types:
     counts (cumulative events), snapshot (instantaneous values),
     and tidemarks (extreme values).

     The module enables proactive network monitoring through
     configurable sampling and collection intervals, supporting
     both high-frequency real-time monitoring and long-term trend
     analysis.  It provides threshold event notifications for both
     periodic collection and non-periodic events (BUT, EUT,
     CSES).

     The module defines the base identity 'performance-parameter'
     from which the identities of specific performance parameters
     are derived in other modules, and the 'collection-type'
     typedef used by other modules to refer to the three
     collection types.

     The collected data can be retrieved by clients via
     pull-based mechanisms (e.g., NETCONF get-data) or delivered
     via push-based subscription mechanisms (e.g., YANG-Push).
     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.

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

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

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
     itself for full legal notices.";

  revision 2026-10-29 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Data Model for Performance Monitoring (PM)
       Collection";
  }

  /*
   * 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:
       - example-ip-qos-15min
       - example-ip-qos-24hr
       - example-mobile-availability-24hr";
  }

  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.";
      }
      enum day {
        description "Time interval in days.";
      }
    }
    description "Units for expressing time intervals.";
  }

  typedef collection-type {
    type enumeration {
      enum counts {
        description
          "Counts collection type: cumulative number of events
           over the collection interval.";
      }
      enum snapshot {
        description
          "Snapshot collection type: instantaneous value taken at
           the uniform time within the collection interval.";
      }
      enum tidemarks {
        description
          "Tidemarks collection type: maximum and minimum values
           reached during the collection interval.";
      }
    }
    description
      "The three collection types.  Used by other modules,
       for example to advertise which collection types a server
       supports for a parameter.";
    reference
      "ITU-T G.7710";
  }

  typedef interval-status {
    type enumeration {
      enum complete {
        description
          "The collection interval is complete: all expected
           samples for the interval were available, so the
           collected value represents a fully measured
           interval.";
      }
      enum partial {
        description
          "The collection interval is partial: some expected
           samples were missing (e.g., telemetry loss or partial
           node support), but at least one valid sample was
           collected.  A partial 'counts' value is a lower bound
           on the true count for the interval.";
      }
      enum unavailable {
        description
          "The collection interval is unavailable: no valid
           sample was collected for the interval.  In this case
           the corresponding collection-value leaf is not
           instantiated, so a reported value is never mistaken
           for a measured zero.";
      }
    }
    description
      "Validity status of a collection interval.  It
       distinguishes a fully measured interval from one computed
       over an incomplete set of samples, so that a client can
       interpret the collected value correctly.";
  }

  /*
   * FEATURES
   */
  feature coverage-counters {
    description
      "Indicates that the server reports per-interval sample
       coverage counters (expected-sample-count and
       received-sample-count) within interval-data-status.";
  }

  /*
   * PERFORMANCE PARAMETER IDENTITY
   */
  identity performance-parameter {
    description
      "Base identity for performance monitoring parameters.  The
       key of each pm-parameter entry is an identity derived from
       this base.  Specific parameters are defined as derived
       identities in other modules, for example modules that
       define the parameters of specific network technologies.";
  }

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

  identity counts-transient {
    base periodic-events;
    description
      "Notification for transient threshold events of the counts
       collection type.";
  }

  identity counts-standing {
    base periodic-events;
    description
      "Notification for standing threshold events of the counts
       collection type.";
  }

  identity snapshot {
    base periodic-events;
    description
      "Notification for threshold events of the snapshot
       collection type.";
  }

  identity tidemarks {
    base periodic-events;
    description
      "Notification for threshold events of the tidemarks
       collection type.";
  }

  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.";
  }

  /*
   * MEASUREMENT METHOD IDENTITIES (RFC 7799)
   */
  identity measurement-method {
    description
      "Base identity for the IPPM measurement method (RFC 7799)
       by which the Stage 1 samples of a performance parameter
       are produced.";
    reference
      "RFC 7799: Active and Passive Metrics and Methods (with
       Hybrid Types In-Between)";
  }

  identity active {
    base measurement-method;
    description
      "Active measurement method: dedicated synthetic test
       traffic is generated and injected to observe network
       behaviour, e.g., OWAMP (RFC 4656), TWAMP (RFC 5357),
       STAMP (RFC 8762).";
    reference
      "RFC 7799, Section 3.4";
  }

  identity passive {
    base measurement-method;
    description
      "Passive measurement method: observation relies solely on
       traffic and signals already present, e.g., reading
       protocol counters or observing physical-layer signals,
       without generating test packets.";
    reference
      "RFC 7799, Section 3.6";
  }

  identity hybrid {
    base measurement-method;
    description
      "Hybrid measurement method: existing user traffic is
       augmented or observed in transit to obtain measurements,
       e.g., IOAM (RFC 9197).";
    reference
      "RFC 7799, Section 3.8";
  }

  /*
   * SUSPECT-REASON IDENTITIES
   */
  identity suspect-reason {
    description
      "Base identity for the reason a collection interval is
       marked suspect (see suspect-interval-flag).";
    reference
      "ITU-T G.7710";
  }

  identity telemetry-loss {
    base suspect-reason;
    description
      "One or more expected samples were lost in transit from
       the Stage 1 sampling source.";
  }

  identity partial-node-support {
    base suspect-reason;
    description
      "Some nodes or resources contributing to the parameter did
       not report samples for the interval.";
  }

  identity state-reset {
    base suspect-reason;
    description
      "Collection state was reset during the interval, so the
       accumulated result does not cover the whole interval.";
  }

  identity restart {
    base suspect-reason;
    description
      "The equipment or collection function restarted during
       the interval.";
  }

  identity time-adjustment {
    base suspect-reason;
    description
      "Interval timing changed during the interval, for example
       due to a change of the sampling interval, reconfiguration,
       or a clock adjustment, so the interval does not contain the
       expected number of samples.";
  }

  identity measurement-suspended {
    base suspect-reason;
    description
      "Data collection was intentionally suspended for part or
       all of the interval, so the interval does not cover
       continuous measurement.  This corresponds to the
       case in which the interval belongs to a period during
       which the measurement is suspended or resumed, for
       example administrative disabling of the PM function, a
       planned maintenance window, or reconfiguration of the
       measurement.  It denotes an intentional pause of
       collection, as distinct from unintended sample loss
       (telemetry-loss), a counter reset (state-reset), or an
       equipment or function restart (restart).";
    reference
      "ITU-T G.7710: suspect interval flag set when the
       measurement is suspended or resumed";
  }

  identity measurement-boundary {
    base suspect-reason;
    description
      "The interval is the first or last interval of the
       measurement and does not cover the full nominal period,
       because the measurement did not start or stop on an
       interval boundary.  The value is otherwise valid, but the
       interval is partial.";
    reference
      "ITU-T G.7710: suspect interval flag set for the first or
       last interval of the measurement";
  }

  identity outage {
    base suspect-reason;
    description
      "A fault or outage condition (e.g., equipment or power
       failure, or resource unavailability) prevented the
       measurement from being performed for part or all of the
       interval, so a snapshot or tidemark may contain no data or
       the periodical gauge measurements were not possible.  This
       is distinct from telemetry-loss, in which the measurement
       was performed but samples were lost in transit.";
    reference
      "ITU-T G.7710: suspect interval flag set when a snapshot or
       tidemark contains no data due to outage conditions";
  }

  /*
   * COMMON GROUPINGS
   */
  grouping threshold-config {
    description
      "Common threshold configuration for the snapshot and
       tidemarks collection 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 the snapshot and tidemarks
       collection types, 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 the counts
       collection type.  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 the counts collection type.  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.";
    }
  }

  grouping interval-data-status {
    description
      "Validity and coverage metadata for a collection interval,
       aligned with the suspect interval flag.  It lets a
       client tell a fully measured interval from an incomplete
       one, and a measured zero from an absent value.";
    reference
      "ITU-T G.7710";
    leaf suspect-interval-flag {
      type boolean;
      default false;
      description
        "Set to 'false' at the start of a collection interval and
         set to 'true' when the data stored for the interval may
         be unreliable, for example when periodic samples are
         missing, when collection state is reset, when the
         equipment restarts, when interval timing changes, or
         when collection is suspended.

         For the snapshot collection type the initialization is
         inverted: G.7710 initializes the flag to 'true' at the
         start of the interval to indicate that no snapshot has
         yet been taken, and clears it to 'false' once the single
         snapshot has been taken at the uniform time.";
      reference
        "ITU-T G.7710";
    }
    leaf interval-status {
      type interval-status;
      description
        "Validity status of the interval (complete, partial, or
         unavailable).  When this leaf is not 'complete', the
         suspect-interval-flag is 'true'.";
    }
    leaf-list suspect-reason {
      type identityref {
        base suspect-reason;
      }
      description
        "Zero or more reasons the interval is suspect.  Present
         only when known.";
    }
    leaf expected-sample-count {
      if-feature coverage-counters;
      type uint64;
      description
        "Number of Stage 1 samples expected during the collection
         interval, i.e., the number a complete interval would
         collect for the configured sampling interval (for
         periodically sampled parameters, approximately the
         collection interval divided by the sampling interval).
         This is a sample-based coverage indicator that applies
         to any sampled parameter and is most meaningful for
         periodically sampled (gauge) parameters such as
         tidemarks.  It is not defined by ITU-T G.7710, which
         indicates counter coverage through 'elapsed-time' and
         marks incompleteness with the suspect-interval-flag; the
         sample counts generalize that notion for this model.";
    }
    leaf received-sample-count {
      if-feature coverage-counters;
      type uint64;
      description
        "Number of valid Stage 1 samples actually collected
         during the collection interval.  Together with
         expected-sample-count it gives the interval coverage: a
         value equal to expected-sample-count indicates full
         coverage, a smaller value a partial interval, and zero
         an unavailable interval (no valid sample).";
    }
    leaf elapsed-time {
      type uint32;
      units "seconds";
      description
        "Elapsed time since the start of the current collection
         interval.  This is the number of seconds of the interval
         that have been processed by the measurement, not the sum
         of available time; it advances during unavailable time
         as well and falls short of the nominal interval only
         when the measurement itself could not run (e.g., a
         boundary interval, a clock adjustment, or an outage).";
    }
    leaf interval-start-time {
      type yang:date-and-time;
      description
        "Timestamp marking the start of the collection interval
         to which this status applies.";
    }
    leaf interval-end-time {
      type yang:date-and-time;
      description
        "Timestamp marking the end of the collection interval to
         which the reported values apply.  This is the
         end-of-interval timestamp.  It is the authoritative
         measurement time for the interval and should be used for
         correlation in preference to the notification envelope
         eventTime, which reflects when the notification was
         generated rather than the measurement interval boundary.
         It is present once the interval has completed.";
      reference
        "ITU-T G.7710";
    }
  }

  /*
   * COLLECTION TYPE GROUPINGS
   *
   * Each collection type is a presence container.  The presence
   * of the container in a collection-interval entry indicates
   * that the server collects that collection type for the
   * parameter over that interval; its absence indicates that it
   * does not.  This lets a profile select, for example, the
   * counts collection type only.
   */
  grouping count-collection-gr {
    description
      "Counts collection type for cumulative event tracking over
       a collection interval.  Supports transient and standing
       threshold reporting.";
    container counts {
      presence
        "Enables the counts collection type for this collection
         interval.";
      description
        "Contains counts collection 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 the snapshot and tidemarks collection types,
           which support both high and low thresholds.";
        uses transient-threshold-config;
      }
      container standing-condition-config {
        must "not(standing-threshold and reset-threshold) or "
           + "standing-threshold >= reset-threshold" {
          error-message
            "Standing threshold must be >= reset threshold.";
        }
        description
          "Configuration for standing condition monitoring.
           When both thresholds are set, standing-threshold
           must be greater than or equal to reset-threshold
           (hysteresis).";
        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 collection-value {
        type uint32;
        config false;
        description
          "Current cumulative count value for the collection
           interval.";
      }
    }
  }

  grouping snapshot-collection-gr {
    description
      "Snapshot collection type for instantaneous values at the
       uniform time within each collection interval.  Supports
       high/low OOR threshold reporting.";
    container snapshot {
      presence
        "Enables the snapshot collection type for this collection
         interval.";
      description
        "Contains snapshot configuration and values.";
      container uniform-time-config {
        description
          "Configuration of the uniform time: the fixed offset
           from the start of the collection interval at which the
           single snapshot is taken.  Taking snapshots at the same
           uniform time across network elements lets their values
           be correlated.";
        leaf offset-value {
          type uint32;
          description
            "Numeric value of the offset, measured from the start
             of the collection interval, at which the snapshot is
             taken.";
        }
        leaf unit {
          type time-interval-unit;
          description
            "Time unit for the uniform-time offset.";
        }
      }
      container threshold-config {
        description
          "Configuration for snapshot threshold monitoring.";
        uses threshold-config;
      }
      leaf collection-value {
        type uint32;
        config false;
        description
          "Current instantaneous snapshot value.";
      }
    }
  }

  grouping tidemarks-collection-gr {
    description
      "Tidemarks collection type for maximum and minimum values
       over the collection interval.  Supports high/low OOR
       threshold reporting.";
    container tidemarks {
      presence
        "Enables the tidemarks collection type for this
         collection interval.";
      description
        "Contains tidemarks values and threshold
         configuration.";
      container threshold-config {
        description
          "Configuration for tidemarks threshold monitoring.";
        uses threshold-config;
      }
      leaf high-collection-value {
        type uint32;
        config false;
        description
          "Current maximum value recorded during the collection
           interval.";
      }
      leaf low-collection-value {
        type uint32;
        config false;
        description
          "Current minimum value recorded during the collection
           interval.";
      }
    }
  }

  grouping collection-types-gr {
    description
      "Grouping for the three core collection types (counts,
       snapshot, tidemarks).";
    container collection-types {
      description
        "Container for the counts, snapshot, and tidemarks
         collection types.  Each collection type is a presence
         container; a collection type is collected for this
         collection interval only when its container is
         present.";
      uses count-collection-gr;
      uses snapshot-collection-gr;
      uses tidemarks-collection-gr;
    }
  }

  /*
   * EVENT GROUPINGS
   */
  grouping counts-transient-event-gr {
    description
      "Transient threshold events for the counts collection
       type.  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 the counts collection
       type.";
    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).  An RTR is not generated for an interval
               whose suspect-interval-flag is set (equivalent to
               the G.7710 'no unavailable time' condition).";
          }
        }
        description
          "Specifies the type of standing threshold event that
           occurred.  A Threshold-Report
           (TR) is generated when the collection-value reaches
           or exceeds the standing-threshold.  A
           Reset-Threshold-Report (RTR) is generated at the end
           of the period when the collection-value is at or
           below the reset-threshold.";
      }
      uses event-state-info;
    }
  }

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

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

  /*
   * COLLECTION INTERVAL STRUCTURES
   */
  grouping periodic-collection-intervals {
    description
      "Hierarchical structure for periodic collection timing
       and collection types.";
    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 {
          range "1..max";
        }
        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 collection-interval {
        key "id";
        description
          "List of collection intervals defining aggregation
           periods.";
        leaf id {
          type string;
          description
            "Unique identifier for this collection interval
             configuration.";
        }
        leaf interval-value {
          type uint32 {
            range "1..max";
          }
          default 15;
          description
            "Numeric value for the collection interval.";
        }
        leaf unit {
          type time-interval-unit;
          default minute;
          description
            "Time unit for the collection interval value.";
        }
        container interval-data-status {
          config false;
          description
            "Operational validity and coverage status of this
             collection interval (see the interval-data-status
             grouping).  In push-based delivery this status
             accompanies each streamed record; in pull-based
             retrieval it is read alongside the collection
             value.";
          uses interval-data-status;
        }
        uses collection-types-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-collection-gr {
    description
      "Hierarchical structure for periodic PM collection.";
    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 identityref {
            base performance-parameter;
          }
          description
            "Identity of the performance parameter being
             collected, derived from the performance-parameter
             base identity.";
        }
        leaf measurement-method {
          type identityref {
            base measurement-method;
          }
          description
            "IPPM measurement method (RFC 7799) by which this
             parameter's Stage 1 samples are produced.  This leaf
             is optional; when absent, the measurement method is
             unspecified.  It carries interpretation metadata
             only and does not affect Collection-stage behaviour.
             Some parameters (e.g., environmental sensor
             readings) are not classified by this axis.";
          reference
            "RFC 7799: Active and Passive Metrics and Methods
             (with Hybrid Types In-Between);
             RFC 6390, Section 5.4.4: method of measurement
             metadata";
        }
        uses periodic-collection-intervals;
      }
    }
  }

  /*
   * MAIN CONTAINER
   */
  container pm-periodic-collection {
    description
      "Main container for periodic PM collection.";
    uses pm-periodic-collection-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 identityref {
              base performance-parameter;
            }
            description
              "Identity of the performance parameter being
               monitored, derived from the performance-parameter
               base identity.";
          }
          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 collection-interval {
              key "id";
              description
                "List of collection intervals for event
                 aggregation.";
              leaf id {
                type string;
                description
                  "Unique identifier for this collection
                   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 Diagram of the ietf-pm-collection Module</name>
        <artwork type="ascii-art"><![CDATA[
module: ietf-pm-collection
  +--rw pm-periodic-collection
     +--rw parameter-profile* [name]
        +--rw name              profile-names
        +--rw pm-parameter* [name]
           +--rw name                 identityref
           +--rw measurement-method?  identityref
           +--rw sampling-interval* [id]
              +--rw id                 string
              +--rw interval-value?    uint32
              +--rw unit?              time-interval-unit
              +--rw collection-interval* [id]
                 +--rw id              string
                 +--rw interval-value? uint32
                 +--rw unit?           time-interval-unit
                 +--ro interval-data-status
                 |  +--ro suspect-interval-flag?    boolean
                 |  +--ro interval-status?          interval-status
                 |  +--ro suspect-reason*           identityref
                 |  +--ro expected-sample-count?    uint64
                 |  |       {coverage-counters}?
                 |  +--ro received-sample-count?    uint64
                 |  |       {coverage-counters}?
                 |  +--ro elapsed-time?             uint32
                 |  +--ro interval-start-time?      yang:date-and-time
                 |  +--ro interval-end-time?        yang:date-and-time
                 +--rw collection-types
                    +--rw counts!
                    |  +--rw transient-condition-config
                    |  |  +--rw transient-threshold?   uint32
                    |  +--rw standing-condition-config
                    |  |  +--rw standing-threshold?    uint32
                    |  |  +--rw reset-threshold?       uint32
                    |  +--ro collection-value?        uint32
                    +--rw snapshot!
                    |  +--rw uniform-time-config
                    |  |  +--rw offset-value?     uint32
                    |  |  +--rw unit?             time-interval-unit
                    |  +--rw threshold-config
                    |  |  +--rw high-threshold?   uint32
                    |  |  +--rw low-threshold?    uint32
                    |  +--ro collection-value?   uint32
                    +--rw tidemarks!
                       +--rw threshold-config
                       |  +--rw high-threshold?   uint32
                       |  +--rw low-threshold?    uint32
                       +--ro high-collection-value?   uint32
                       +--ro low-collection-value?    uint32

  notifications:
    +---n pm-threshold-events
       +--ro periodic-events
       |  +--ro parameter-profile* [name]
       |     +--ro name              profile-names
       |     +--ro pm-parameter* [name]
       |        +--ro name                 identityref
       |        +--ro sampling-interval* [id]
       |           +--ro id                 string
       |           +--ro interval-value?    uint32
       |           +--ro unit?              time-interval-unit
       |           +--ro collection-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="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>This section discusses operational aspects of deploying the model
defined in this document.</t>
      <dl>
        <dt>Capability discovery before configuration:</dt>
        <dd>
          <t>A server is not required to support every sampling interval,
collection interval, or collection type for every parameter, and
it rejects a configuration that it does not support.  How a client
discovers the supported combinations before configuration is
outside the scope of this document.</t>
        </dd>
        <dt>Configuration and operational state:</dt>
        <dd>
          <t>Profiles, intervals, collection types, and thresholds are
configuration and are held in the running configuration
datastore.  Collected values, interval status, and validity
metadata are operational state and are read from the
operational state datastore <xref target="RFC8342"/>.  A server may provide
profiles as system-defined configuration, which then appear in
the operational state datastore without client configuration.</t>
        </dd>
        <dt>Scaling and load:</dt>
        <dd>
          <t>The processing load on a network element grows with the number
of configured "pm-parameter" and interval entries, with shorter
sampling intervals, and with the number of monitored objects.
The delivery load grows with the number of concurrent
YANG-Push subscriptions <xref target="RFC8639"/> <xref target="RFC8641"/> and with
shorter subscription periods.  Operators should choose profiles,
intervals, and subscription periods with these costs in mind.  A
periodic subscription period that matches the collection
interval delivers each completed result once, without redundant
updates.  A server MAY limit the number of entries or
subscriptions it accepts, and MAY reject a subscription it cannot
serve, as permitted by <xref target="RFC8639"/> and <xref target="RFC8641"/>.</t>
        </dd>
        <dt>Time synchronization:</dt>
        <dd>
          <t>Collection interval boundaries are derived from the clock of the
network element.  For results to be comparable across network
elements, operators should synchronize those clocks, for example
with NTP or PTP.  An interval in which the clock was adjusted, or
in which data was otherwise incomplete, is marked by the suspect
interval flag (see <xref target="interval-data-validity"/>).</t>
        </dd>
        <dt>Data validity:</dt>
        <dd>
          <t>A client SHOULD check "interval-data-status" before using a
collected value.  A value from an interval whose suspect interval
flag is set should not be treated as equivalent to a value from a
complete interval, for example in SLA reporting.  A value of zero
is interpreted according to the interval status, as described in
<xref target="interval-data-validity"/>.</t>
        </dd>
        <dt>Retention:</dt>
        <dd>
          <t>A server is not required to retain completed intervals.  When it
does not, a client that needs a complete history must obtain each
result as its interval ends, either by subscription or by polling
close to the interval boundary.</t>
        </dd>
        <dt>Threshold events and fault management:</dt>
        <dd>
          <t>Threshold events (see <xref target="thresholding"/>) indicate performance
degradation.  They are not equipment alarms, but an operator may
feed them into existing fault management workflows.  Thresholds
set too low can produce a large number of notifications.  The
standing condition method, with its reset threshold, can be used
to limit repeated reports for a persistent condition.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG module specified in this document defines a schema for
data that is designed to be accessed via network management
protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.
The lowest NETCONF layer is the secure transport layer, and the
mandatory-to-implement secure transport is Secure Shell (SSH)
<xref target="RFC6242"/>.  The lowest RESTCONF layer is HTTPS, and the
mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF
or RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that
are writable/creatable/deletable (i.e., "config true", which is the
default).  All writable data nodes are under the
"/pm-periodic-collection" container.  These data nodes may be
considered sensitive or vulnerable in some network environments.
Write operations (e.g., edit-config) to these data nodes without
proper protection can have a negative effect on network operations.
These are the subtrees and data nodes and their
sensitivity/vulnerability:</t>
      <dl>
        <dt>"/pm-periodic-collection/parameter-profile", including its</dt>
        <dd>
          <t/>
        </dd>
        <dt>"pm-parameter", "sampling-interval", and "collection-interval"</dt>
        <dd>
          <t/>
        </dd>
        <dt>entries:</dt>
        <dd>
          <t>An attacker who can create entries, or shorten sampling
intervals, could raise the processing and memory load on the
network element and degrade its other functions.  An attacker who
can delete or modify entries could stop or alter the collection
of performance data, hiding service degradation from the operator
and corrupting the data used for SLA verification.</t>
        </dd>
        <dt>".../collection-types/counts", ".../snapshot", and ".../tidemarks":</dt>
        <dd>
          <t>These presence containers enable collection types.  Removing them
silently stops the corresponding collection and threshold
reporting.</t>
        </dd>
        <dt>".../transient-condition-config", ".../standing-condition-config",</dt>
        <dd>
          <t/>
        </dd>
        <dt>".../threshold-config", and ".../uniform-time-config":</dt>
        <dd>
          <t>Raising thresholds or the reset threshold could suppress threshold
reports and hide performance degradation.  Lowering them could
cause a flood of notifications towards clients.  Changing the
uniform time offset changes when snapshots are taken, which can
make results inconsistent across network elements.</t>
        </dd>
        <dt>"measurement-method":</dt>
        <dd>
          <t>Changing this leaf could cause clients to misinterpret how the
collected values were obtained.</t>
        </dd>
      </dl>
      <t>Some of the readable data nodes in this YANG module may be
considered sensitive or vulnerable in some network environments.
It is thus important to control read access (e.g., via get,
get-config, or notification) to these data nodes.  These are the
subtrees and data nodes and their sensitivity/vulnerability:</t>
      <dl>
        <dt>"collection-value", "high-collection-value", "low-collection-value",</dt>
        <dd>
          <t/>
        </dd>
        <dt>and "interval-data-status":</dt>
        <dd>
          <t>These nodes reveal error performance, unavailability periods, and
the quality of service delivered on monitored connections.  This
information can expose weak points in the network and indicate
when and where an attack is likely to have an effect.  It can
also reveal commercially sensitive information, such as SLA
compliance.  The configuration nodes can reveal which resources
and parameters an operator monitors and at which thresholds.</t>
        </dd>
      </dl>
      <t>The "pm-threshold-events" notification carries the same kind of
information as the readable nodes, including the times of
unavailability (BUT and EUT events) and of consecutive severely
errored seconds (CSES events).  Access to it SHOULD be restricted
in the same way, using NACM and the security mechanisms of the
subscription framework <xref target="RFC8639"/> <xref target="RFC8641"/>.</t>
      <t>This YANG module defines no RPC operations or actions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests IANA to register the following URI in
the "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <t>URI: urn:ietf:params:xml:ns:yang:ietf-pm-collection
   Registrant Contact: The IESG.
   XML: N/A; the requested URI is an XML namespace.</t>
      <t>This document also requests IANA to register the following YANG
module in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
      <t>Name:         ietf-pm-collection
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-pm-collection
   Prefix:       pm-co
   Reference:    RFC XXXX</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="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>
          <seriesInfo name="ITU-T" value="Recommendation G.7710"/>
        </reference>
        <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="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="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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7799">
          <front>
            <title>Active and Passive Metrics and Methods (with Hybrid Types In-Between)</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This memo provides clear definitions for Active and Passive performance assessment. The construction of Metrics and Methods can be described as either "Active" or "Passive". Some methods may use a subset of both Active and Passive attributes, and we refer to these as "Hybrid Methods". This memo also describes multiple dimensions to help evaluate new methods as they emerge.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7799"/>
          <seriesInfo name="DOI" value="10.17487/RFC7799"/>
        </reference>
        <reference anchor="RFC4656">
          <front>
            <title>A One-way Active Measurement Protocol (OWAMP)</title>
            <author fullname="S. Shalunov" initials="S." surname="Shalunov"/>
            <author fullname="B. Teitelbaum" initials="B." surname="Teitelbaum"/>
            <author fullname="A. Karp" initials="A." surname="Karp"/>
            <author fullname="J. Boote" initials="J." surname="Boote"/>
            <author fullname="M. Zekauskas" initials="M." surname="Zekauskas"/>
            <date month="September" year="2006"/>
            <abstract>
              <t>The One-Way Active Measurement Protocol (OWAMP) measures unidirectional characteristics such as one-way delay and one-way loss. High-precision measurement of these one-way IP performance metrics became possible with wider availability of good time sources (such as GPS and CDMA). OWAMP enables the interoperability of these measurements. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4656"/>
          <seriesInfo name="DOI" value="10.17487/RFC4656"/>
        </reference>
        <reference anchor="RFC5357">
          <front>
            <title>A Two-Way Active Measurement Protocol (TWAMP)</title>
            <author fullname="K. Hedayat" initials="K." surname="Hedayat"/>
            <author fullname="R. Krzanowski" initials="R." surname="Krzanowski"/>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="K. Yum" initials="K." surname="Yum"/>
            <author fullname="J. Babiarz" initials="J." surname="Babiarz"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>The One-way Active Measurement Protocol (OWAMP), specified in RFC 4656, provides a common protocol for measuring one-way metrics between network devices. OWAMP can be used bi-directionally to measure one-way metrics in both directions between two network elements. However, it does not accommodate round-trip or two-way measurements. This memo specifies a Two-Way Active Measurement Protocol (TWAMP), based on the OWAMP, that adds two-way or round-trip measurement capabilities. The TWAMP measurement architecture is usually comprised of two hosts with specific roles, and this allows for some protocol simplifications, making it an attractive alternative in some circumstances. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5357"/>
          <seriesInfo name="DOI" value="10.17487/RFC5357"/>
        </reference>
        <reference anchor="RFC8762">
          <front>
            <title>Simple Two-Way Active Measurement Protocol</title>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="G. Jun" initials="G." surname="Jun"/>
            <author fullname="H. Nydell" initials="H." surname="Nydell"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This document describes the Simple Two-way Active Measurement Protocol (STAMP), which enables the measurement of both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8762"/>
          <seriesInfo name="DOI" value="10.17487/RFC8762"/>
        </reference>
        <reference anchor="RFC9197">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document discusses the data fields and associated data types for IOAM. IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6. IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9197"/>
          <seriesInfo name="DOI" value="10.17487/RFC9197"/>
        </reference>
        <reference anchor="RFC3593">
          <front>
            <title>Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals</title>
            <author fullname="K. Tesink" initials="K." role="editor" surname="Tesink"/>
            <date month="September" year="2003"/>
            <abstract>
              <t>This document defines a set of Textual Conventions for MIB modules that make use of performance history data based on 15 minute intervals. This memo replaces RFC 2493. Changes relative to RFC 2493 are summarized in the MIB module's REVISION clause. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3593"/>
          <seriesInfo name="DOI" value="10.17487/RFC3593"/>
        </reference>
        <reference anchor="RFC3705">
          <front>
            <title>High Capacity Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals</title>
            <author fullname="B. Ray" initials="B." surname="Ray"/>
            <author fullname="R. Abbi" initials="R." surname="Abbi"/>
            <date month="February" year="2004"/>
            <abstract>
              <t>This document presents a set of High Capacity Textual Conventions for use in MIB modules which require performance history based upon 15 minute intervals. The Textual Conventions defined in this document extend the conventions presented in RFC 3593 to 64 bit resolution using the conventions presented in RFC 2856. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3705"/>
          <seriesInfo name="DOI" value="10.17487/RFC3705"/>
        </reference>
        <reference anchor="RFC6390">
          <front>
            <title>Guidelines for Considering New Performance Metric Development</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework and a process for developing Performance Metrics of protocols and applications transported over IETF-specified protocols. These metrics can be used to characterize traffic on live networks and services. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="170"/>
          <seriesInfo name="RFC" value="6390"/>
          <seriesInfo name="DOI" value="10.17487/RFC6390"/>
        </reference>
        <reference anchor="RFC2330">
          <front>
            <title>Framework for IP Performance Metrics</title>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <author fullname="G. Almes" initials="G." surname="Almes"/>
            <author fullname="J. Mahdavi" initials="J." surname="Mahdavi"/>
            <author fullname="M. Mathis" initials="M." surname="Mathis"/>
            <date month="May" year="1998"/>
            <abstract>
              <t>The purpose of this memo is to define a general framework for particular metrics to be developed by the IETF's IP Performance Metrics effort. This memo provides information for the Internet community. It does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2330"/>
          <seriesInfo name="DOI" value="10.17487/RFC2330"/>
        </reference>
        <reference anchor="RFC8526">
          <front>
            <title>NETCONF Extensions to Support the Network Management Datastore Architecture</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="2019"/>
            <abstract>
              <t>This document extends the Network Configuration Protocol (NETCONF) defined in RFC 6241 in order to support the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document updates RFCs 6241 and 7950. The update to RFC 6241 adds new and operations and augments existing,, and operations. The update to RFC 7950 requires the usage of the YANG library (described in RFC 8525) by NETCONF servers implementing the NMDA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8526"/>
          <seriesInfo name="DOI" value="10.17487/RFC8526"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </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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
OGOMd62zPgshqxBuz0RRKXuA6ATlG2JZDl+7m0MktjtZC6Ir0LdaSfBdEG9W
jH10VdpIV11SyVEqbSOlvMUkm/nO0WgkTaQ+KjnVOh6OMMdEYmuQb0U3FT9y
eVqDOFHLtF+y6ZRdoIWHplQgTtRr8+3zVzQHJuzZV6T+jEusyoKBe0IfGfwa
OyScS3jsnLpwqi0WWa1gS29pZ1JPnRU3Lied5JMhyWfJkq3VSZttG/bX9g4G
ahPKNwMt+mRotsuUoD6JQ+KkdV/v11f1VEuEZyJJi3LtQsUFW4VFuoig2DWD
daESTD5imRLl9aarqr0RD41Ue0mz5F2QxQw3ZSVbbbsoNVA27MAV30yZ/7FK
AZlvfSU1qbCPl/j3t9uCtv1PtdtquA8B7ImAEWR0/tt++ftbSbuGzxgfNDqj
u4DbGg8/yXCXxHJlahEv22C680PFtjslXFyCd/jy5auh8Ad9xZEqx9n6K0Jr
H8A4E+gzTGwUHn5vKJGAruwPXpsN8YDPF8Yi6ZndwHA6zbNzBVkijUBieLkW
zj/dqnX34f5X97tWrR6E/I3mpdublr51EhbP/s8O9ggw6neM9ojNQ+utQ2wZ
YrRMWYZ+e/DIJ5urNhurvvVyecqS4i500gLj333yU0AjBEP5q/43Vcx/glXQ
9B334ZoZN9wM4yEJ3t7r3Y5d8P9wFEz3KtEY8Q1fbwrqIet9PCJlC2LrT19O
vguNSeroNiveUCT+8unrc/4MP7qFAtp9aoPu52Y6+ifM5F4YL1m5SfUi5icw
Ld6vJ7/VetxTVBwgqLScXo8fth6HhZk3vbBuA35UTIQ39aKTnZHh+L3ObfTt
tahkde51xR4ixaLTZjXSegPVwrV/4nIF0humlmY4vhxH0LnBVDSaUJK39GVJ
la9xOlm4SDFB0mLiFlhaus/VH6AFUQkFaUssdXptr9ZE+6LMqnQ4j6Si09Lm
S16JFNlaWL1RelstfI+ShF3BK129RgXG7DGWhaLyXFKTueZYLhdtpmgmVk8u
N2BVB5IXNWbOm3ETXRQvVnlCqcyKG9CGaqn+0Tn7+JA7aqXr8uL1S0r7cBoy
H7ZonrnF1a452avGXjM2Bmnb1SNDY5KW4I1XiRks6Hm9KH0FDG0IJfjokFAS
6Dx6UpGKOAv3/Rfk2ST/DomzH32coyZYU6bucSBMe3mYTF1coZxS0dvsjXeY
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
GSJUeBk4eYXJUE1p36YhB4gbgOIrro/ZXNDgSICyXAlP0VJdFsM+xrC/sqKs
g4tVSBsa+mgGJ8+aPOB3W3aA5EtbZ53MYq4vT2lhJM3iZWQGGT0oCO3EGZgQ
0Ng38wm7eo5LkKPHzIGJVa1cbKfvflRMivm05V7oWB5UCIB0abosuaf3FDeC
Lizqhn3VWW2OlARr2LY0k0pbmXaIIuMnklCNwYXzgImvLKEObJ+84CxPlkol
N6/wcjynqDjrgCaSYugZVZ1nxgD4zheIEb+VtmKw5Rb2VdpexLuoW5yVwLHT
akXJvnh2uOcu5rejJkiLEWqXAqRkSq3MMiJwLHTTneHWZUyokSNRm4N3lZeE
PKQzAOCiATrjmpzkJ0fnhy9PngnD+forkhdgZ6+OzuwXf7r74C5ePFw8nEYJ
yK9vTooVXz0uKz7CjAWyxXG9YvxWBekyg7WMEUVWw0UzrPBO0UY7r8FwZ/zZ
2TV2Udg+O/tpJ3OLZHHVLMYt163mp/Pz07PPmvj8xZnu+sGDr5n/wkwnAs5Q
wzggiOOHi3kzQe2yhNWeHBwe73jpGmCaiTjdajB43UoVXYxnXsjJubb21WgJ
KO5gDMfudgiIOW+ZcM8w3dA3/gHCUnLzNew74RLRZJDMnqoighfLXeHuBStS
sGUADN75wtwzQr66wX3Eyq3FaSrVge/eYFcCWMTeCNkP/QYAKrlt+DZ3PtqS
xFEKalEdQhohSMorVUKBTelwdh04DZXBphe29tJBKls+CIgxpw0GQYXnosxG
clcRmiX8SuHnALd3ywkmh3FzlbzFOHknN/noeJDqf4YFlhaoGkMPlEHcUjtC
3sMFiKCKaDLjiNmFCHZIj6iTCd7oKylGz5H98K0uw09Jl7Tlo2MB5wLNJHy+
Fm58M6p5plsFarWnOyXTxH7WC8+9jk9oCzXY0WRJBBcoaxbqVHDOHSfMFt/P
rYQfYysT2ZsYPLZ8WxSjt9i357ohkBBClV45w2KbpNvUTjELdRVumzIvqHF0
qD1SYcly2qge1tRp4ZhBSJyxJOZBMmZ+uaxHyniipSJLh8USzpfc/GxcXa6c
YsGLApFiRv1YJotOHUtWVW2sGZ7hAAQRAjRKPhV+6Pm1F/WVIWdaFmM+X84W
aqMiXNCeHyTTgQzluCiQgK3d3d29OLZhj90PeJ74tVrn9SjxM2fJ3hJNvS0T
7S1ADqWCmanyeq/gMN7JOrEnT1uhtIptuwBSqhSCPgw0Wxm8GyMugekFVdlR
f3SF21RfJMTWQIaIXM1294mQAYLDK8C8oKwRFddylXpsWgMjxXKGQGsTm+HL
e43GsAAxApntBXBGzVyc8piEjUukDaAoNJzfEkhOQJpuijmsjGVgPIpDbGEp
w2RR5WOOdNAul5zzZGonIwHi1o9M00dkiJ7CR06/RNWsVgGqp5Aynls3Uu//
tnYtLQ0DQfieXxFyE4qKgpT1IEWqFLSID+i1hrQWTSJNpfXQ/+5889hu4voC
e2ihSZvd2ZmdmW/nwTQNBmdtEoV4Mk2dBTbcEsRXhyR9khJJn30u9GwCuMZ2
PXfj5JwoRZOBrHW1T0z7/ZcysQY/b/SYEus+FY8tV2NDKgeI4aB6BnbfvFj1
EnpT5uOtMVzlqALySlHVRvKj2ki/VRvdWAWIVjQAAhdiwQ0kaixSUed5t6/I
oJbk48DVwrFBKBK9bn674lMGa2NV0dBAUyt2mylDSwVrgh12R/SsinznYjAq
HdYKxFZfbF7hwq2L6TP5dYtq1RgqbIss4KJ4XYm2+mKETiwuUyBYe7TuQA/G
Wi2ASjW/pQdCnki51UYAclPLYpkvpMWhZ7pgjD1v+dOGb87+ArRSg7qNbgt5
MS99grVxktjjRjVLkGvT8gOFdMI0QbFw3zJELOssEqCStVPHLBPSirGnzwvu
vZW0SjU2bTHlwYdWiVTgKgHozZIOZyB0m8c5pE8Zw56cHzD86msYNFrDICm0
hkET1jCwX8ISEMFEv1wPCD0W3uIn71L5gueznr73FAuC82BiJg4KxhdUH1Xs
rgUkzLAAzF5fwsD7eqQVblXmYVZ1entzHhquMEeU1+HOjgbjQfyEzHurXNsK
WC/fy87NHDu7KLkZyXe9xvwebkdAePBlVtFC0zzkTjK/gkytbDS8v0gn11dk
DcjVjKZzRtM5Pun3t1vHsf30Zy59W1YOR32O+bBxm/LFVY3jc8loOLv9JTZU
jvDPV3KkMBreXXJWLD3XpeODwamyFE+NVpsHz1yOkXFE0+uUhKdLDJXK31EE
K6Lx97ZZZLxKcliZIquOCOWppH7w4dGhkQF3OH+IGp/z2AbLN/6dZjdLYpaN
PYUvCyk1i5evIKN2Qq/kA2iIMl/+vAEA

-->

</rfc>
