| Internet-Draft | GREEN-PEM-YANG | February 2026 |
| Benoit, et al. | Expires 7 August 2026 | [Page] |
This document defines the YANG data model for Power and Energy monitoring of devices within or connected to communication networks.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 7 August 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
This document defines a YANG data model for Power and Energy Monitoring and control of devices within or connected to communication networks, for the use cases document in [I-D.ietf-green-use-cases-00].¶
The data model includes both the monitoring and control of Energy Objects for networked devices.¶
This YANG data model is based on the the "GREEN framework" [I-D.belmq-green-framework-06], following the "GREEN terminology" [I-D.ietf-green-terminology-00].¶
Power and Energy Monitoring and Control can be applied to devices in communication networks. All identifiable devices with measurable or representable Power and Energy characteristics fall within the scope of this specification. Target devices include (but are not limited to) routers, switches, Power over Ethernet (PoE) endpoints, smart PDU, storage and compute servers, etc.¶
Where applicable, device monitoring extends to the components of the device as well as software and service running on the device. As a result, the metrics to be monitored include Device Level Energy Efficiency (DLEE), Component Level Energy Efficiency (CLEE) and potential Service Level Energy Efficiency (SLEE) at the orchestrator-level, etc. For example, a router can contain components such as Line Processing Unit (LPU), Switch Fabric Unit (SFU), Main Processing Unit (MPU).¶
This document makes use of the terms defined in [I-D.ietf-green-terminology-00]:¶
- Power - Energy - Energy Management - Energy Monitoring - Energy Control - Energy Efficiency/Energy Efficiency Ratio - Device Level Energy Efficiency (DLEE) - Component Level Energy Efficiency (CLEE) - Service Level Energy Efficiency (SLEE)¶
This document makes use of the terms defined in [I-D.belmq-green-framework-06]¶
- Energy Object¶
The terms reused from [I-D.ietf-green-terminology-00] and [I-D.belmq-green-framework-06] are capitalized in this specification.¶
This document uses the terms Power and Energy in accordance with [I-D.ietf-green-terminology-00]. Power refers to the instantaneous rate at which a device consumes or produces electrical energy (typically expressed in Watts). Energy, by contrast, represents the cumulative amount of work performed over time (typically expressed in Joules or Watt-hours). Both concepts are required within this YANG module. Power enables real-time monitoring, control, and optimization of device operation, while Energy provides a time-integrated view necessary for accounting, reporting, and even for sustainability analysis. This specification includes both Power and Energy attributes.¶
The terminology for describing YANG modules is defined in [RFC7950]. The meanings of the symbols in the YANG tree diagrams are defined in [RFC8340].¶
The "GREEN framework" described in [I-D.belmq-green-framework-06] covers monitoring and controlling devices and components where monitoring includes measuring Power, Energy, demand and attributes of Power.¶
For the whole picture of the monitoring interfaces and the relevant requirements, please refer to "GREEN reference model" in section 4 in [I-D.belmq-green-framework-06].¶
The Power and Energy Data Model reports the Power and Energy consumption of each Energy Object as well as the units, sign, measurement accuracy, etc. A containment tree view of the Power and Energy Monitoring is presented.¶
module: ietf-power-and-energy
+--ro energy-objects
+--ro energy-entry* [object-id]
+--ro object-id string
+--ro source-component-id? -> /hw:hardware/component/name
+--ro power
| +--ro instantaneous-power int32
| +--ro nameplate-power? uint32
| +--ro unit-multiplier identityref
| +--ro data-source-accuracy? identityref
| +--ro power-factor? power-factor
| +--ro measurement-local? boolean
+--ro energy
+--ro total-energy-consumed? uint64
+--ro total-energy-delivered? uint64
+--ro unit-multiplier? identityref
+--ro data-source-accuracy? identityref
+--ro measurement-local? boolean
¶
The ietf-hardware YANG module [RFC8348] is required by the Power and Energy YANG module. In the ietf-hardware YANG model, there are three identifiers for hardware components, which are "name", "physical-index" and "uuid". Among them, "name" is the key to "List of components", "physical-index" matches entPhysicalIndex in the legacy Entity MIB [RFC6933] if it exists, and UUID is the Universally Unified IDentifier [RFC4122] of the component.¶
In the Power and Energy YANG Module defined in this specification, there is a leaf named "source-component-id" which refers to the component name in the ietf-hardware model. The "source-component-id" can in turn reuse the UUID in the ietf-hardware YANG module.¶
The mapping between energy-object entries in this YANG Module and the hardware-components in ietf-hardware YANG module [RFC8348] is designed to be 1:1, architecturally aligning each energy-entry with exactly one physical hardware component via source-component-id.¶
There are also cases where the controllers also generate its own set of UUIDs for the hardware (components). In such a case, it might be necessary to document the mappings between the UUIDs generated on the hardware side and the UUIDs on the controller side. Basically, the devices (such as routers) generate the UUID and the controller can query it.¶
The ietf-hardware YANG module [RFC8348] allows to discover all the device components, including the containment tree, and the parent/child relationship, which is important for energy/power aggregation (see the contains-child relationship in RFC 8348).¶
The EMAN IETF Working Group (https://datatracker.ietf.org/wg/eman/about/) is a concluded Working Group that produces a couple of RFCs in the domain of Power and Energy. The Working Group produced MIB modules for monitoring and control for power and energy, for the context information, for battery monitoring, and an extension to the ENITY-MIB to add the UUID definition [RFC6933].¶
For various reasons, those MIB modules were not implemented by vendors.¶
The Power and Energy data model defined in this specification use the Monitoring and Control MIB for Power and Energy [RFC7460] as a starting point to discuss the solution to the different use cases in [I-D.ietf-green-use-cases-00].¶
However, it has not been the goal to simply map the MIB module to a YANG module. The changes compared to the EMAN MIB modules are mainly due to the alignment with the up-to-date requirements of the network carriers on Energy Efficiency. Compared to the MIB modules, some definitions and types are optimized, some new Energy Objects are added and some legacy Energy Objects are removed accordingly.¶
This YANG Module is used to monitor and control Power and Energy usage of network devices and the components on these devices.¶
<CODE BEGINS>
module ietf-power-and-energy {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-power-and-energy";
prefix eo;
import ietf-hardware {
prefix hw;
reference
"RFC 8348: A YANG Data Model for Hardware Management";
}
organization
"IETF GREEN Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/green/>
WG List: <mailto:green@ietf.org>";
description
"This YANG module specifies for Power and Energy monitoring and
control of devices within or connected to communication
networks.
Copyright (c) 2025 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 Simplified 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-01-22 {
description
"Initial revision";
reference
"RFC XXXX: Energy Object YANG Data Model";
}
identity data-source-accuracy {
description
"Base identity for all possible data accuracy types.
This identity serves as the root for a hierarchy of accuracy
types, allowing for extensibility while maintaining alignment
with current and future industry standards.
The hierarchy, as defined in this YANG module, is as follows.
Other modules may extend this hierarchy with additional
accuracy base- and sub-types as needed.
data-source-accuracy
├── accuracy-like-parent
├── accuracy-unknown
│ └── accuracy-unavailable
├── accuracy-estimated
│ ├── accuracy-static
│ ├── accuracy-historic
│ └── accuracy-learned
└── accuracy-measured
├── accuracy-measured-bronze
│ ├── accuracy-measured-bronze-1
│ ├── accuracy-measured-bronze-10
│ ├── accuracy-measured-bronze-100
│ └── accuracy-measured-bronze-1000
├── accuracy-measured-silver
│ └── accuracy-measured-silver-...
├── accuracy-measured-gold
│ └── accuracy-measured-gold-...
├── accuracy-measured-red
│ └── accuracy-measured-red-...
└── accuracy-measured-ones
The accuracy levels under accuracy-measured are based on
percent-wise accuracy classes:
bronze: +/- 30%
silver: +/- 10%
gold: +/- 5%
red: +/- 2%
In addition, the accuracy-measured-ones identity indicates
a power data measurement with all digits valid, except trailing
zeros.
Since percent-wise accuracy works poorly for very small
values, standards such as IEC 62053, IEC 61850-7-4 and
IEEE 1451 define accuracy classes based on a combination of
percent-wise accuracy and absolute accuracy thresholds.
E.g. +/-1 % of reading + +/-0.05 absolute units.
Similarly, for each percent-wise accuracy class, this module
defines a few absolute tolerance classes, indicated by
suffixes to the accuracy identity names. The suffixes indicate
absolute accuracy thresholds:
no suffix: +/-0.5 absolute units
-1: +/-1 absolute unit
-10: +/-10 absolute units
-100: +/-100 absolute units
-1000: +/-1000 absolute units
Thus, for example, accuracy-measured-gold-10 indicates
a power data measurement with an accuracy of either
+/-5% or +/-10 absolute units, whichever is larger.
For example, a power sensor reading might report a value
of 16250, with unit multiplier of milli (10^-3), under
accuracy-measured-gold-10. This indicates that the actual
power value is between 16.2375 and 16.2625 Watts, since
5% of 16.250 Watts is 0.8125 Watts, which is greater than
the absolute threshold of 10 milliwatts (0.010 W).
At another time, the same sensor might report a value
of 150, with unit multiplier of milli (10^-3), under
accuracy-measured-gold-10. This indicates that the actual
power value is between 0.140 and 0.160 Watts, since 5% of
0.150 Watts is only 0.0075 Watts, which is less than the
absolute threshold of 10 milliwatts (0.010 W).";
}
identity accuracy-unknown {
base data-source-accuracy;
description
"The accuracy of the power data is unknown.";
}
identity accuracy-unavailable {
base accuracy-unknown;
description
"A power data is not available for some reason, such
as a sensor failure or a component being powered off.";
}
identity accuracy-like-parent {
base data-source-accuracy;
description
"The accuracy of the power/energy data is the same as this energy
object's parent object. This identity is useful for hierarchical
energy objects where child objects inherit the accuracy
characteristics.";
}
identity accuracy-estimated {
base data-source-accuracy;
description
"The power data is estimated, perhaps based on a model,
history or calculation rather than a direct measurement.";
}
identity accuracy-static {
base accuracy-estimated;
description
"The power data is based on static data, such as
manufacturer specifications, datasheet of typical power values
or nameplate ratings, rather than real-time measurements.";
}
identity accuracy-historic {
base accuracy-estimated;
description
"The power data is based on an historic measurement data
for this specific system and usage pattern.";
}
identity accuracy-learned {
base accuracy-estimated;
description
"The power data is based on an machine learning
model prediction.";
}
identity accuracy-measured {
base data-source-accuracy;
description
"The power data is a direct, real-time measurement
from a sensor.";
}
identity accuracy-measured-bronze {
base accuracy-measured;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 30% OR |actual-sensor| ≤ 0.5";
}
identity accuracy-measured-bronze-1 {
base accuracy-measured-bronze;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 30% OR |actual-sensor| ≤ 1";
}
identity accuracy-measured-bronze-10 {
base accuracy-measured-bronze;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 30% OR |actual-sensor| ≤ 10";
}
identity accuracy-measured-bronze-100 {
base accuracy-measured-bronze;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 30% OR |actual-sensor| ≤ 100";
}
identity accuracy-measured-bronze-1000 {
base accuracy-measured-bronze;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 30% OR |actual-sensor| ≤ 1000";
}
identity accuracy-measured-silver {
base accuracy-measured;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 10% OR |actual-sensor| ≤ 0.5";
}
identity accuracy-measured-silver-1 {
base accuracy-measured-silver;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 10% OR |actual-sensor| ≤ 1";
}
identity accuracy-measured-silver-10 {
base accuracy-measured-silver;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 10% OR |actual-sensor| ≤ 10";
}
identity accuracy-measured-silver-100 {
base accuracy-measured-silver;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 10% OR |actual-sensor| ≤ 100 ";
}
identity accuracy-measured-silver-1000 {
base accuracy-measured-silver;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 10% OR |actual-sensor| ≤ 1000";
}
identity accuracy-measured-gold {
base accuracy-measured;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 5% OR |actual-sensor| ≤ 0.5";
}
identity accuracy-measured-gold-1 {
base accuracy-measured-gold;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 5% OR |actual-sensor| ≤ 1";
}
identity accuracy-measured-gold-10 {
base accuracy-measured-gold;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 5% OR |actual-sensor| ≤ 10";
}
identity accuracy-measured-gold-100 {
base accuracy-measured-gold;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 5% OR |actual-sensor| ≤ 100";
}
identity accuracy-measured-gold-1000 {
base accuracy-measured-gold;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 5% OR |actual-sensor| ≤ 1000";
}
identity accuracy-measured-red {
base accuracy-measured;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 2% OR |actual-sensor| ≤ 0.5";
}
identity accuracy-measured-red-1 {
base accuracy-measured-red;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 2% OR |actual-sensor| ≤ 1";
}
identity accuracy-measured-red-10 {
base accuracy-measured-red;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 2% OR |actual-sensor| ≤ 10";
}
identity accuracy-measured-red-100 {
base accuracy-measured-red;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 2% OR |actual-sensor| ≤ 100";
}
identity accuracy-measured-red-1000 {
base accuracy-measured-red;
description
"The power data is a direct, real-time measurement
from a sensor with precision and accuracy such that
|actual-sensor| ≤ sensor * 2% OR |actual-sensor| ≤ 1000";
}
identity accuracy-measured-ones {
base accuracy-measured;
description
"The power data is a direct, real-time measurement
from a sensor with all digits valid, except trailing zeros.
For example, a sensor reading of 12300 represents
a sensor value between 12250 and 12350.";
}
typedef power-factor {
type uint8 {
range "0 .. 100";
}
default 100;
description
"The percent value of the power factor measurement.
Leaf often omitted, implying 100%.";
reference
"Replaces RFC 7460: eoPowerCurrentType object";
}
identity power-state {
description
"Base identity for all possible power states. This identity
serves as the root for a hierarchy of power states, allowing
for extensibility while maintaining alignment with the IANA
Power State Set Registry.";
reference
"IANA: Power State Set Registry";
}
identity unit-multiplier {
description
"Base identity for unit multipliers as defined in IEC 61850-7-3
Annex A. These represent exponents of 10 for scaling units
associated with the integer units used to measure the power or
energy.
yocto(-24), -- 10^-24
zepto(-21), -- 10^-21
atto(-18), -- 10^-18
femto(-15), -- 10^-15
pico(-12), -- 10^-12
nano(-9), -- 10^-9
micro(-6), -- 10^-6
milli(-3), -- 10^-3
units(0), -- 10^0
kilo(3), -- 10^3
mega(6), -- 10^6
giga(9), -- 10^9
tera(12), -- 10^12
peta(15), -- 10^15
exa(18), -- 10^18
zetta(21), -- 10^21
yotta(24) -- 10^24
";
reference
"RFC 7460: UnitMultiplier";
}
identity multiplier-yocto {
description
"Represents a multiplier of 10^-24 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-zepto {
description
"Represents a multiplier of 10^-21 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-atto {
description
"Represents a multiplier of 10^-18 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-femto {
description
"Represents a multiplier of 10^-15 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-pico {
description
"Represents a multiplier of 10^-12 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-nano {
description
"Represents a multiplier of 10^-9 associated with the
integer units used to measure the power or energy.";
}
identity multiplier-micro {
description
"Represents a multiplier of 10^-6 (0.000001) associated with the
integer units used to measure the power or energy.";
}
identity multiplier-milli {
description
"Represents a multiplier of 10^-3 (0.001) associated with the
integer units used to measure the power or energy.";
}
identity multiplier-units {
description
"Represents a multiplier of 10^0 (1) associated with
the integer units used to measure the power or energy.";
}
identity multiplier-kilo {
description
"Represents a multiplier of 10^3 (1,000) associated with the
integer units used to measure the power or energy.";
reference
"RFC 7460: UnitMultiplier";
}
identity multiplier-mega {
description
"Represents a multiplier of 10^6 (1,000,000) associated with
the integer units used to measure the power or energy.";
}
identity multiplier-giga {
description
"Represents a multiplier of 10^9 (1,000,000,000) associated
with the integer units used to measure the power or energy.";
}
identity multiplier-tera {
description
"Represents a multiplier of 10^12 associated
with the integer units used to measure the power or energy.";
}
identity multiplier-peta {
description
"Represents a multiplier of 10^15 associated
with the integer units used to measure the power or energy.";
}
identity multiplier-exa {
description
"Represents a multiplier of 10^18 associated
with the integer units used to measure the power or energy.";
}
identity multiplier-zetta {
description
"Represents a multiplier of 10^21 associated
with the integer units used to measure the power or energy.";
}
identity multiplier-yotta {
description
"Represents a multiplier of 10^24 associated
with the integer units used to measure the power or energy.";
}
container energy-objects {
description
"Energy objects container for power and energy attributes.";
reference
"RFC 7460: eoPowerTable";
config false;
list energy-entry {
key "object-id";
description
"Power and energy entry for an energy object, indexed by object id.
Each entry contains the complete set of power and energy attributes
for a specific physical component.";
reference
"RFC 7460: EoPowerEntry";
leaf object-id {
type string;
description
"An identifier that uniquely identifies the energy object
in an energy object.";
}
leaf source-component-id {
type leafref {
path "/hw:hardware/hw:component/hw:name";
}
description
"Reference to the component name in the ietf-hardware
model. This leaf creates a direct semantic link between the
power/energy attributes and the physical component they describe.
";
}
container power {
description
"Container for power measurement attributes.";
reference
"RFC 7460: eoPowerEntry attributes";
leaf instantaneous-power {
type int32;
units "Watts";
mandatory true;
description
"The power usage measurement for the energy object right now.
This value represents the instantaneous power consumption
of the component. This value is specified in SI units of watts
with the magnitude of watts (milliwatts, kilowatts, etc.) indicated
separately as unit-multiplier in this container. Positive values
indicate power consumption, while negative values can indicate power
generation (e.g., for devices with battery backup or
renewable energy sources).";
reference
"RFC 7460: eoPower object";
}
leaf nameplate-power {
type uint32;
units "Watts";
description
"The nameplate power rating of an energy object. This is
the maximum power that the energy object is designed to consume or
produce, as specified by the manufacturer. Essential for
power budget calculations and capacity planning.";
reference
"RFC 7460: eoPowerNameplate object";
}
leaf unit-multiplier {
type identityref {
base unit-multiplier;
}
mandatory true;
description
"The unit multiplier used to measure the power.
This multiplier applies to both instantaneous-power and nameplate-power
values, allowing representation of power values from milliwatts
to gigawatts using integer arithmetic.";
reference
"RFC 7460: eoPowerUnitMultiplier object";
}
leaf data-source-accuracy {
type identityref {
base data-source-accuracy;
}
default accuracy-like-parent;
description
"The accuracy of the power data source. Indicates whether
the data source is a direct measurement, an estimate, or
unavailable and also the accuracy level of the data source.
By default, the accuracy is inherited from the parent energy
object, facilitating hierarchical accuracy definitions
without the need to specify accuracy at every level.
This metadata is crucial for network management
applications to assess the reliability and accuracy of the
power data.";
reference
"RFC 7460: eoPowerMeasurementCaliber object";
}
leaf power-factor {
type power-factor;
description
"The percent value of the power factor measurement for the
energy object. This information is important for
understanding the electrical characteristics of the energy object
and for correctly interpreting the power data.";
reference
"Replaces RFC 7460: eoPowerCurrentType object";
}
leaf measurement-local {
type boolean;
description
"Indicates whether the power measurement is local (true) or
remote (false). A local measurement is taken directly at
the energy object, while a remote measurement is collected from
an external source. This information can be useful for
troubleshooting and understanding the data source.";
reference
"RFC 7460: eoPowerMeasurementLocal object";
}
}
container energy {
description
"Container for energy measurement attributes.";
reference
"RFC 7460: eoEnergyEntry attributes";
leaf total-energy-consumed {
type uint64;
units "Watt-hours";
description
"The total cumulative energy consumed by the energy object
since the last reset. This value is specified as
watt-hours with the magnitude of watt-hours (milliwatt-hours,
kilowatt-hours, etc.) indicated separately as unit-multiplier
in this container. This value is useful for tracking
overall energy usage over time for billing, reporting,
or optimization purposes.";
reference
"RFC 7460: eoEnergyConsumed object";
}
leaf total-energy-delivered {
type uint64;
units "Watt-hours";
description
"The total cumulative energy delivered by the energy object
since the last reset. This value is specified as
watt-hours with the magnitude of watt-hours (milliwatt-hours,
kilowatt-hours, etc.) indicated separately as unit-multiplier
in this container. This value is relevant for energy objects
capable of generating power, such as those with renewable
energy sources or battery backup systems, or capable of providing
energy to other energy objects (e.g., PoE switches).";
reference
"RFC 7460: eoEnergyProduced object";
}
leaf unit-multiplier {
type identityref {
base unit-multiplier;
}
description
"This multiplier applies to both total-energy-consumed
and total-energy-delivered values. It determines the scale
of the energy measurements, allowing representation of
energy values from milliwatt-hours to gigawatt-hours
using integer arithmetic.";
reference
"RFC 7460: eoPowerUnitMultiplier object";
}
leaf data-source-accuracy {
type identityref {
base data-source-accuracy;
}
default accuracy-like-parent;
description
"The accuracy of the energy data source. Indicates whether
the data source is a direct measurement, an estimate, or
unavailable and also the accuracy level of the data source.
By default, the accuracy is inherited from the parent energy
object, facilitating hierarchical accuracy definitions
without the need to specify accuracy at every level.
This metadata is crucial for network management
applications to assess the reliability and accuracy of the
energy data.";
reference
"RFC 7460: eoPowerMeasurementCaliber object";
}
leaf measurement-local {
type boolean;
description
"Indicates whether the energy measurement is local (true) or
remote (false). A local measurement is taken directly at
the energy object, while a remote measurement is collected from
an external source. This information can be useful for
troubleshooting and understanding the data source.";
reference
"RFC 7460: eoPowerMeasurementLocal object";
}
}
}
}
}
<CODE ENDS>¶
Heterogeneous sensor capabilities across components complicate power and energy aggregation. Operators must use the data-source-accuracy identities (e.g., accuracy-measured-bronze vs. accuracy-estimated) to weight data reliability carefully before aggregating Power (instantaneous-power) and Energy (total-energy-consumed and/or total-energy-delivered) values to avoid skewing Device-Level Energy Efficiency (DLEE) metrics.¶
Operators might not always be interested to get the individual component accuracy. What counts is the device level or domain level, identity accuracy-like-parent is introduced to meet their demands. From an implementation point of view, to facilitate data collection and aggregation on runtime and avoid post-aggregation data confidence interval issues, operators and implementers should use as much as possible this accuracy-like-parent identity.¶
YANG Push support eliminates device-side bucket storage by streaming energy telemetry directly to controller-side via subscriptions. Operators must verify the 'yang-push' bundle is enabled and validate push-max-operational limits accommodate all component subscriptions, preventing notification flooding while avoiding memory overhead on the device.¶
This section will be completed once the YANG module is complete, according to https://wiki.ietf.org/group/ops/yang-security-guidelines.¶
This section is modeled after the template described in Section 3.7.1 of [RFC-to-be draft-ietf-netmod-rfc8407bis].¶
The Power and Energy YANG module defines a data model that is designed to be accessed via YANG-based management protocols, such as NETCONF [RFC6241] and RESTCONF [RFC8040]. These YANG-based management protocols (1) have to use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and QUIC [RFC9000]) and (2) have to use mutual authentication.¶
The Network Configuration Access Control Model (NACM) [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.¶
This document requests IANA to register the YANG module "ietf-power-energy-monitoring".¶
Note to IANA: RFC XXXX must be replaced by the newly assigned RFC number.¶
This work has benefited from the regular discussions on the GREEN Design Meetings. The authors wish to thank the WG chairs, Rob Wilton and Diego Lopez, for organizing the recurring calls and progressing the work. The authors also wish to thank the following individuals, who provided helpful comments and reviews to this document.¶