<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pslm-poweff-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="POWEFF">Power and Energy Efficiency</title>
    <seriesInfo name="Internet-Draft" value="draft-pslm-poweff-01"/>
    <author initials="J." surname="Lindblad" fullname="Jan Lindblad">
      <organization>All For Eco</organization>
      <address>
        <email>jan.lindblad+ietf@for.eco</email>
      </address>
    </author>
    <author initials="S." surname="Mitrovic" fullname="Snezana Mitrovic">
      <organization>Cisco Systems</organization>
      <address>
        <email>snmitrov@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Palmero" fullname="Marisol Palmero">
      <organization>Cisco Systems</organization>
      <address>
        <email>mpalmero@cisco.com</email>
      </address>
    </author>
    <author initials="G." surname="Salgueiro" fullname="Gonzalo Salgueiro">
      <organization>Cisco Systems</organization>
      <address>
        <email>gsalguei@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>operations</area>
    <workgroup>GREEN Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 50?>

<t>This document specifies a device YANG "dashboard" data model that allows devices to report which power measurement and control functions they offer.  This basic YANG model is applicable to any kind of device, regardless of whether the device itself has any support for YANG-based management interfaces or not.  The YANG model simply allows a device to describe what it can report, and which interfaces are available to request this data.  Devices that lack any on-board YANG-based management interfaces provide this information in the form of a YANG instance data file.  This file may be readable from an on-board web server on the device, or hosted anywhere else.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/janlindblad/draft-pslm-poweff"/>.</t>
    </note>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>As highlighted during the <eref target="https://datatracker.ietf.org/doc/html/draft-iab-ws-environmental-impacts-report-00">IAB workshop on environmental impacts</eref>, visibility is a very important first step. Paraphrasing Peter Drucker's mantra of "You cannot improve what you don't measure".  During the workshop the need for standardized metrics was established, to avoid proprietary, redundant and even contradictory metrics across vendors.</t>
      <t>POWEFF is considered a first step, part of the Sustainability Telemetry Specification referred as part of the Sustainability Insights <xref target="I-D.draft-almprs-sustainability-insights-02"/> IETF draft (a newer version may exist).  That is where the overall problem statement, solution principles and other components of the proposed solution can be found.  Specifically, this work is meant to fit in with the <xref target="I-D.draft-lindblad-tlm-philatelist-03"/> framework.</t>
      <t>This Power Consumption and Energy Efficiency Telemetry Specification (POWEFF) provides a way for a controller to understand what a device offers in terms of power related sensors and controls.  It also provides machine readable metadata for the sensors, such as which units of measurement are used, what is included in the reported data, the precision of the data, etc.  This is referred to as the device dashboard.</t>
      <t>This document also contains embryonic definitions of recommended datasets and attributes defining a common data model to report Power Consumption and Energy Efficiency on assets, with multiple implementation levels, that new devices may choose to implement.  Standardized calculations utilizing the specified datasets and attributes will yield a power consumption value for any asset or network element, and standardized calculations utilizing the specified datasets and attributes will yield the energy efficiency value for any asset or network element.</t>
      <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.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>Terminology and abbreviations used in this document:</t>
      <dl>
        <dt>Asset</dt>
        <dd>
          <t>Refers to hardware, software, applications, or services. An asset can be physical or virtual, as defined in the Asset Lifecycle Management and Operations <xref target="I-D.draft-palmero-ivy-ps-almo-01"/> IETF draft.</t>
        </dd>
        <dt>Scope 1</dt>
        <dd>
          <t>Emissions directly caused by actions of the organization, such as when fossil fuels are burned when the organization is operating a fossil vehicle. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 2</dt>
        <dd>
          <t>Emissions indirectly caused by actions of the organization, but under control of the organization. For example, when electric energy is purchased, causing a provider utility to make emissions on behalf of the organization. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 3</dt>
        <dd>
          <t>Emissions the organization indirectly causes others to make, but outside the organizations direct control. Examples include the energy customers consume when operating the organization's products, or when employees commute to work at the organization. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 4</dt>
        <dd>
          <t>Refers to the term used in Greenhouse Gas (GHG) accounting and reporting to describe emissions that occur as a result of an organization's value chain activities, but are not directly controlled or owned by the organization. Scope 4 emissions are considered indirect emissions and are typically associated with activities that are upstream or downstream from a organization's operations. Such as when equipment provided by the organization enables a video conference, without which greater emissions from business travel would have happened.</t>
        </dd>
        <dt>CO2eq</dt>
        <dd>
          <t>Carbon dioxide equivalents, a measure of the disruptive force of greenhouse gas emissions.</t>
        </dd>
        <dt>Power</dt>
        <dd>
          <t>Refers to the (e.g. electrical or optical) energy per unit of time, supplied to operate an asset, such as a smartphone. It is usually measured in units of Watts.</t>
        </dd>
        <dt>Energy Efficiency</dt>
        <dd>
          <t>refers to the ability of an asset to perform its intended functions while minimizing energy consumption. It refers to the ratio between the useful output energy and input energy given by an asset. In a router or a switch, it is a measure of how efficiently the network element utilizes energy resources to transmit and process data or perform other network-related tasks. See <eref target="https://en.wikipedia.org/wiki/Energy_efficiency">Energy efficiency wikipedia</eref>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>The main objective of POWEFF is to enable Network Controllers to measure, report and control power and energy related metrics from networks with many and diverse devices, providing the necessary insights to improve the overall CO2eq emission for use cases of which the asset is part.  Basically, emissions that address direct use-phase emissions of Scope 3, Category 11 "use of sold products".</t>
      <t>It includes emissions from the use of goods and services sold by the reporting company or vendor in the reporting year. A vendor’s Scope 3 emissions from use of sold products include the scope 1 and scope 2 emissions of end users. End users include both consumers and business customers that use final assets. It is important to note that Scope 3 category 11, reports around 75% of the total Scopes 1, 2 and 3 reported by a given asset. See <eref target="https://www.cisco.com/c/m/en_us/about/csr/esg-hub/environment/goals.html#scope-1-3-emissions">Cisco ESG Reporting Hub</eref>.</t>
      <t>Power and energy consumption Telemetry data available for different infrastructure vendors today is characterized by inconsistency and best effort:</t>
      <ul spacing="normal">
        <li>
          <t>Availability of primary data.  Data is often only available on a case by case basis.</t>
        </li>
        <li>
          <t>Varying APIs.  Where Telemetry might be available, access methods, data contents and formats are specific to platforms or elements.</t>
        </li>
        <li>
          <t>Limitations.  Some useful or essential data items are never collected by the relevant hardware or software.</t>
        </li>
        <li>
          <t>Precision.  Data often contains significant margins of error, both from random noise and systematic errors.</t>
        </li>
        <li>
          <t>Varying definitions.  Calculated values use differing inputs and algorithms, limiting the value of any possible comparison and aggregation.</t>
        </li>
        <li>
          <t>Opacity.  Lack of transparency of how and what is being measured makes it very hard to ascertain fair comparisons.</t>
        </li>
      </ul>
      <section anchor="proposed-solution-outline">
        <name>Proposed Solution Outline</name>
        <t>Formulate a Power and Energy Efficiency Telemetry Specification to promote consistency:</t>
        <dl>
          <dt>Data</dt>
          <dd>
            <t>Definition of datasets and attributes that will define a common data model to report power and energy consumption on hardware and software assets</t>
          </dd>
          <dt>Calculation</dt>
          <dd>
            <t>Define a standardized calculation utilizing the specified datasets and attributes which will yield an energy consumption value for any asset.</t>
          </dd>
        </dl>
        <t>Implementing any Sustainability Solution at scale for customers with a broad range of equipment requires at minimum consistently available Power Consumption/Energy Efficiency Telemetry. Telemetry standardization will benefit numerous stakeholders, including Corporate Social Responsibility (CSR), who have a need for Power Consumption Telemetry data for a variety of purposes.</t>
      </section>
      <section anchor="use-cases">
        <name>Use Cases</name>
        <ul spacing="normal">
          <li>
            <t>Monitoring power and energy efficiency based on common metrics.</t>
          </li>
          <li>
            <t>Enhance reporting and provide a comprehensive overview for potentially improving power usage during the operational phase.</t>
          </li>
          <li>
            <t>Consumption per device, e.g. wireless environment.</t>
          </li>
          <li>
            <t>Capabilities to optimize energy consumption when assets are not in use, e.g. idle and allocated power.</t>
          </li>
          <li>
            <t>Hardware Lifecycle. Circular economy enables to restore product value at the end of life, there are several options, reuse, remanufacturing, recycling, repurpose, etc.</t>
          </li>
        </ul>
        <t>More elaborate use cases, e.g. define carbon footprint for network's usage, might also be derived from POWEFF model, even discussion and common understanding will be required.</t>
      </section>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <t>Implementors of this specification can choose the implementation level that is appropriate for their device at the current time.  As the implementation matures, higher implementation levels may be chosen over time.  Each implementation level is a superset of the previous level.</t>
      <section anchor="level-0-proprietary-dashboard-only">
        <name>Level 0, Proprietary Dashboard Only</name>
        <t>At level 0, the device implements only proprietary dashboards, without implementing any dashboards with predefined content. This allows controllers to find the power sensors already present in the implementation, and read the associated metadata, but may not be well prepared to really understand the meaning of the data being read.  The dashboard may be provided by an on-board YANG-based management protocol, or delivered as a YANG instance data file from an on-board webserver, or delivered as a file by some other mechanism (e.g. web server elsewhere).</t>
        <t>For level 0, the Network Element implements the Philatelist YANG module ietf-tlm-philatelist-provider. This gives the controller one or more proprietary dashboard with whatever contents the implementor sees fit.</t>
      </section>
      <section anchor="level-1-current-total-power-draw">
        <name>Level 1, Current Total Power Draw</name>
        <t>At level 1, the device implements a very small, but well defined dashboard, and lists it using the Philatelist
ietf-tlm-philatelist-provider module. The level 1 dashboard consists of a single dashboard item. This dashboard item provides a way for the Network Controller to read the current total power draw of the Network Element.</t>
        <figure>
          <name>YANG tree diagram of the Level 1 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-1
  +--rw poweff
     +--ro stats
        +--ro device-current-total-power-draw?   uint32
]]></sourcecode>
        </figure>
        <t>The following requirements MUST be fulfilled by the Network Element implementing the level 1 and higher dashboards.
+ The reported telemetry data MUST be correct with regards to what is included and not included for all reported telemetry data values
+ The metadata MUST be correct with regards to measurement units for all reported telemetry data values
+ The metadata MUST be correct with regards to apparent/real RMS power, for all reported power and energy data values
+ The power consumption values reported MUST NOT be underestimated over time in actual field use</t>
        <t>If Network Elements declaring conformance to the level 1, or higher, dashboard of this specification, do not actually fulfill the conditions required in this document, that may be construed as violating the <eref target="https://oeil.secure.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&amp;reference=2023/0085(COD)">EU Green Claims Directive (GCD), EU 2023/0085(COD)</eref></t>
      </section>
      <section anchor="level-2-add-energy-and-susbsystem-breakdown">
        <name>Level 2, Add Energy and Susbsystem Breakdown</name>
        <t>At level 2, on top of all level 1 reporting, the Network Element also reports the gross energy usage over time (the integral over time of the power draw), and the power draw can be further inspected for each major subsystem within the device.</t>
        <figure>
          <name>YANG tree diagram of the Level 2 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-2

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats:
    +--ro device-total-energy-spent?         uint32
    +--ro device-total-energy-spent-since?   yang:date-and-time
    +--ro subsystem* [name]
       +--ro name                  subsys-name-t
       +--ro current-power-draw?   uint32
       +--ro children*             -> ../../subsystem/name
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-3-add-fundamental-power-control">
        <name>Level 3, Add Fundamental Power Control</name>
        <t>From this level onward, a YANG-based management protocol is required, since standards based configuration control of the device is required.</t>
        <t>At level 3, all the reporting functions of level 2 are required, and also basic control over device global power-save modes. The controller may choose one of several power saving modes for the Network Element. Network Element implementors or Standards Defining Organizations (SDOs) may also augment the mode selection with additional power saving modes.</t>
        <t>The basic principle for the power saving controls is for the Network Controller to specify how much degradation of the maximum possible delivered performance it could tolerate, and for the Network Element to decide on what power saving measures can be taken, while still fulfilling expectations. The Network Element SHOULD also provide an estimate of how much power can be saved under the given conditions.</t>
        <t>This document specifies four power save modes and two power-save conditions that apply generally to the power save modes.</t>
        <dl>
          <dt>fully-powered</dt>
          <dd>
            <t>The subsystem is fully powered, i.e. does not take any power-saving measures that would risk lowering the performance below normal levels.</t>
          </dd>
          <dt>powered-off</dt>
          <dd>
            <t>The subsystem is completely powered off, i.e. it is drawing no or little power while also delivering zero performance.</t>
          </dd>
          <dt>napping</dt>
          <dd>
            <t>The subsystem is napping, i.e. is taking frequent but brief pauses in the service it provides. The Network Controller may specify a max-additional-latency. This determines the maximum tolerated length of the pauses with reduced performance. This means the maximum additional delay that this subsystem would incur on e.g. detecting incoming traffic or performing its function.</t>
          </dd>
          <dt>throttling</dt>
          <dd>
            <t>The subsystem is throttling, i.e. is running with reduced capacity in the service it provides. The Network Controller may specify a max-capacity-reduction. This determines the maximum tolerated reduction of performance.</t>
          </dd>
        </dl>
        <t>For example, if a Network Controller applied throttling with a max-capacity-reduction value at 50% onto a transport subsystem or service that consists of 3 underlaying links of equal capacity, the Network Element might decide to shut down one of the three links.</t>
        <t>For all the power-save modes (except the fully-powered mode, in which these have no effect) the two following general conditions also apply:</t>
        <dl>
          <dt>max-time-to-cancel-power-save</dt>
          <dd>
            <t>The maximum time the Controller allows the subsystem to recover full performance. The subsystem should not
engage in power-saving measures that take longer than this time to revert to full performance.</t>
          </dd>
          <dt>estimated-power-reduction</dt>
          <dd>
            <t>The subsystem's own estimate on how much of its own power draw is reduced by the power-saving measures in effect.</t>
          </dd>
        </dl>
        <t>For example, if a Network Controller applied throttling with a max-capacity-reduction value at 50% onto a transport subsystem or service that consists of 3 underlaying links of equal capacity, the Network Element might decide to shut down one of the three links. The Network Element might then report an estimated-power-reduction of 33%.</t>
        <figure>
          <name>YANG tree diagram of the Level 3 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-3

  augment /ietf-poweff-level-1:poweff:
    +--rw power-save
       +--rw subsystem* [name]
          +--rw name                   -> /poweff/stats/subsystem/name
          +--rw (selected-power-save-mode)?
          |  +--:(fully-powered)
          |  |  +--rw fully-powered?               empty
          |  +--:(powered-off)
          |  |  +--rw powered-off?                 empty
          |  +--:(napping)
          |  |  +--rw napping
          |  |     +--rw max-additional-latency?   microseconds
          |  +--:(throttling)
          |     +--rw throttling
          |        +--rw max-capacity-reduction?   percent
          +--rw max-time-to-cancel-power-save?     microseconds
          +--ro estimated-power-reduction?         uint32
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-4-add-service-attribution">
        <name>Level 4, Add Service Attribution</name>
        <t>At level 4, the Network Element also provides a list of services/tenants/clients/domains/functions that it delivers value towards, and attributes the Network Element's power draw to each of the services.  The list of services may include one "overhead/idle/other/unknown" entry that absorbs any overhead not attributable to a particular service. The power draw MAY be further subdivided for each service by using a dot notation.</t>
        <t>One service instance called '-idle-' may be present in the list and absorb any overhead/idle/other/unknown kind of power draw that the system would not allocate to any service. It is up to the implementor to decide what a 'service' means for this type of system. It may be any kind of service that it delivers user value towards.</t>
        <t>For example, if a system serves three customers, X, Y and Z, their power draw could be declared as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">name</th>
              <th align="left">current-power-draw</th>
              <th align="left">children</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">X</td>
              <td align="left">45</td>
              <td align="left">vpn</td>
            </tr>
            <tr>
              <td align="left">X.vpn</td>
              <td align="left">39</td>
              <td align="left">eth1/16 eth2/33 eth3/11</td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth1/16</td>
              <td align="left">14</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth2/33</td>
              <td align="left">12</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth3/11</td>
              <td align="left">9</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Y</td>
              <td align="left">26</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Z</td>
              <td align="left">19</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">-idle-</td>
              <td align="left">48</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The sum of the current-power-draw top level entries  (in this example: X, Y, Z and -idle-, with values 45 + 26 + 19 + 48 = 138) must match the value provided in ietf-poweff-level-1:device-current-total-power-draw</t>
        <t>The sub-service values (e.g. X.vpn, 39W) need to be lower than or equal to (but do not necessarily need to match) their parent level (e.g. X, 45W).</t>
        <t>Note: the name of the children have been abbreviated in the diagram above. In the actual payload, the full names would always be used, e.g. 'eth1/16' above would actually be communicated as 'X.vpn.eth1/16'.</t>
        <figure>
          <name>YANG tree diagram of the Level 4 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-4

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats:
    +--ro service* [name]
       +--ro name                  string
       +--ro current-power-draw?   uint32
       +--ro children*             -> ../../service/name
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-5-add-service-level-power-control">
        <name>Level 5, Add Service Level Power Control</name>
        <t>At level 5, the device additionally implements power-save modes per delivered service. The structure is exactly the same as the level 3 structure, except that it is for services rather than subsystems. A service would be something that is relevant and meaningful from a customer's or user's perspective. It is up to the Network Element implementor to decide exactly what constitutes a service.</t>
        <figure>
          <name>YANG tree diagram of the Level 5 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-5

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-3:power-save:
    +--rw service* [name]
       +--rw name                        -> /poweff/stats/service/name
       +--rw (selected-power-save-mode)?
       |  +--:(fully-powered)
       |  |  +--rw fully-powered?               empty
       |  +--:(powered-off)
       |  |  +--rw powered-off?                 empty
       |  +--:(napping)
       |  |  +--rw napping
       |  |     +--rw max-additional-latency?   microseconds
       |  +--:(throttling)
       |     +--rw throttling
       |        +--rw max-capacity-reduction?   percent
       +--rw max-time-to-cancel-power-save?     microseconds
       +--ro estimated-power-reduction?         uint32
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="module-ietf-poweff-typesyang">
        <name>Module ietf-poweff-types.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-types";
  prefix ietf-poweff-types;

  import ietf-tlm-philatelist-types {
    prefix ietf-tlm-philatelist-types;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines basic quantities, measurement units
     and sensor types for the POWEFF framework.

     Copyright (c) 2021 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 2024-04-16 {
    description
      "Restructured to use the Telemetry Philatelist framework";
    reference
      "RFC XXXX: ...";
  }

  typedef something { 
    // FIXME: Used when we haven't decided the type yet
    type string;
    description "FIXME";
  }
  typedef xpath {
    type string; 
    // FIXME: Proper type needed
    description "FIXME";
  }
  typedef sample-frequency {
    type string; 
    // FIXME: Proper type needed
    description "FIXME";
  }

  // ========== SENSOR-QUANTITY ==============================
  identity sq-voltage {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports electric tension, voltage.
      ";
  }
  identity sq-current {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports electric current.
      ";
  }
  identity sq-power {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports power draw (energy per unit of time).
      ";
  }
  identity sq-power-apparent {
    base sq-power;
    description 
      "Sensor reports apparent power, i.e. average electrical
      current times voltage (in VA).
      ";
  }
  identity sq-power-true {
    base sq-power;
    description 
      "Sensor reports true power, i.e. integral over current
      and voltage at each instant in time.
      ";
  }
  identity sq-energy {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports actual energy drawn by asset.
      ";
  }
  identity sq-co2-emission {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports CO2 (carbon dioxide) emission by asset.
      ";
  }
  identity sq-co2eq-emission {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports CO2 (carbon dioxide) equivalent
      emission by asset.
      ";
  }
  identity sq-temperature {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports temperature of asset.
      ";
  }
  identity sq-time {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
    "Sensor reports time duration.
    ";
  }

  // ========== SENSOR-UNIT ==============================
  identity su-volt {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-voltage;
    description 
    "Sensor unit volt, V.
    ";
  }
  identity su-ampere {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-current;
    description 
      "Sensor unit ampere, A.
      ";
  }
  identity su-watt {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit watt, W.
      ";
  }
  identity su-voltampere {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit Volt*Ampere, VA.
      ";
  }
  identity su-kw {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit kilowatt, kW.
      ";
  }
  identity su-joule {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit joule, J.
      ";
  }
  identity su-wh {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit watthour, Wh.
      ";
  }
  identity su-kwh {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit kliowatthour, kWh.
      ";
  }
  identity su-kelvin {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit kelvin, K.
      ";
  }
  identity su-celsius {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit celsius, C.
      ";
  }
  identity su-farenheit {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit farenheit, F.
      ";
  }
  identity su-gram {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit gram, g.
      ";
  }
  identity su-kg {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit kliogram, kg.
      ";
  }
  identity su-ton {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit ton, t.
      ";
  }
  identity su-second {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit second, s.
      ";
  }
  identity su-millisecond {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit millisecond, ms.
      ";
  }
  identity su-microsecond {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit microsecond, us.
      ";
  }

  // ========== SENSOR-TYPE ==============================
  extension sensor-type {
    argument identity-name;
    description 
      "YANG Extension used to declare which sensor type
      (as in input/output, quantity and unit) it has in a
      standardized machine readable way.
      See ietf-tlm-philatelist-types:sensor-type.
      ";
  }
  identity st-v-in {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-voltage;
    base su-volt;
    description 
      "Sensor reporting Voltage In to asset.
      ";
  }
  identity st-v-out {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-voltage;
    base su-volt;
    description 
      "Sensor reporting Voltage Out of asset.
      ";
  }
  identity st-i-in {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-current;
    base su-ampere;
    description 
      "Sensor reporting Current In to asset.
      ";
  }
  identity st-i-out {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-current;
    base su-ampere;
    description 
      "Sensor reporting Current Out of asset.
      ";
  }
  identity st-p-in-apparent-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-power-apparent;
    base su-voltampere;
    description 
      "Sensor reporting Power In to asset as apparent (I*U)
      power.
      ";
  }
  identity st-p-out-apparent-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-power-apparent;
    base su-voltampere;
    description 
      "Sensor reporting Power Out of asset as apparent (I*U)
      power.
      ";
  }
  identity st-p-in-true-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-power-true;
    base su-watt;
    description 
      "Sensor reporting Power In to asset as true power.
      ";
  }
  identity st-p-out-true-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-power-true;
    base su-watt;
    description 
      "Sensor reporting Power Out of asset as true power.
      ";
  }
  identity st-p-allocated-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-allocated;
    base sq-power;
    base su-watt;
    description 
      "Sensor reporting Allocated Power for asset.
      ";
  }
  identity st-w-j {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-joule;
    description 
      "Sensor reporting energy draw of asset in J.
      ";
  }
  identity st-w-wh {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-wh;
    description 
      "Sensor reporting energy draw of asset in Wh.
      ";
  }
  identity st-w-kwh {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-kwh;
    description 
      "Sensor reporting energy draw of asset in kWh.
      ";
  }
  identity st-t-k {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-kelvin;
    description 
      "Sensor reporting Temperature of asset in K.
      ";
  }
  identity st-t-c {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-celsius;
    description 
      "Sensor reporting Temperature of asset in °C.
      ";
  }
  identity st-t-f {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-farenheit;
    description 
      "Sensor reporting Temperature of asset in °F.
      ";
  }

  // ========== TSDB-PATH ======================================
  extension tsdb-path {
    argument tsdb-path;
    description 
      "YANG Extension for declaring the TSDB path that a given
      YANG leaf would have.
      ";
  }
  // ========== COLLECTION-METHOD ==============================
  // None defined here

  // ========== POWER-SAVE UNITS ===============================
  typedef microseconds {
    type uint32;
    units us;
    description 
      "Time unit, millionths of a second. 10^-6 seconds.
      ";
  }
  typedef percent {
    type uint32 {
      range 0..100;
    }
    units %;
    description 
      "Percent fraction, 1/100 of something.
      ";
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-1yang">
        <name>Module ietf-poweff-level-1.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-1 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-1";
  prefix ietf-poweff-level-1;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 1.

    Copyright (c) 2024 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.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 1";
    reference
      "RFC XXXX: ...";
  }

  container poweff {
    description 
      "Top level container for POWEFF.
      ";
    container stats {
      config false;
      description 
        "Statistics (read-only) branch of POWEFF.
        ";
      leaf device-current-total-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.device_current_total_power_draw;
        description 
          "The current power draw of the device that the
          management server pertains to, including power supplies. 
          Does not include power draw of external cooling systems
          that may be required to operate this system.

          The power draw MUST be reported in Watts, and MUST be the
          true RMS power. The reported value MUST NOT be lower than
          the actual power draw. Any violations of these conditions
          may be legally construed as greenwashing, as defined by
          EU Green Claims Directive (GCD), EU 2023/0085(COD).
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-2yang">
        <name>Module ietf-poweff-level-2.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-2 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-2";
  prefix ietf-poweff-level-2;

  import ietf-yang-types {
    prefix yang;
  }
  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 2.

    Copyright (c) 2024 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.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 2";
    reference
      "RFC XXXX: ...";
  }

  typedef subsys-name-t {
    type union {
      type enumeration {
        enum sys {
          description "The name of the top level object is 'sys'.";
        }
      }
      type string {
        pattern '[a-zA-Z]+[a-zA-Z0-9_/\.:-]*[a-zA-Z0-9_/]+';
      }
    }
    description 
      "Type for subsystem names. Must start with an ASCII
      alpabetic characters. The characters following may also be
      numeric characters, dash, underscore, forward slash. Parts of
      the name may be interpunctuated with a dot or colon. 
      Interpunctuation must not be the last character in the name.";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats {
    description 
      "Level 2 extends the Level 1 defintions with additional content.
      ";
    leaf device-total-energy-spent {
      type uint32;
      units J;
      ietf-poweff-types:sensor-type 
        ietf-poweff-types:st-w-j;
      ietf-poweff-types:tsdb-path 
        poweff.stats.device_total_energy_spent;
      description 
        "The total energy spent by the device since the point
        in time specified by ../device-total-energy-spent-since.
        This is the integral over time of the power draw as specified
        by ../ietf-poweff-level-1:device-current-total-power-draw.

        The energy used MUST be reported in Joule. The reported value 
        MUST NOT be lower than the actual energy used. 
        Any violations of these conditions
        may be legally construed as greenwashing, as defined by
        EU Green Claims Directive (GCD), EU 2023/0085(COD).";
    }
    leaf device-total-energy-spent-since {
      type yang:date-and-time;
      description 
        "The point in time at which the energy couting started.
        Typically at the most recent system initalization.";
    }
    list subsystem {
      key name;
      description 
        "List of subsystems, in a tree structure, as defined by the
        system implementor. There MUST be an entry called 'sys', 
        which MUST have a current-power-draw value equal to the 
        ../ietf-poweff-level-1:device-current-total-power-draw value.
        ";
      leaf name {
        type subsys-name-t;
        description 
          "The name of the subsystem. The name is built from the name
          of its ancestors joined with a dot (.). The root object of
          tree is called 'sys'.

          An example of a valid tree structure:
           - sys
           - sys.main-board
           - sys.main-board.cpu0
           - sys.main-board.cpu1
           - sys.linecard1
           - sys.linecard1.eth0/1
           - sys.psu0
           - sys.psu0.fan0
           - sys.psu0.fan1
          ";
      }
      leaf current-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.subsystem.current_power_draw;
        description 
          "Current power draw of the subsystem in Watts.
          This value MUST be larger than or equal to the sum of the
          power draw of all children listed in ../children, if any.";
      }
      leaf-list children {
        type leafref {
          path ../../subsystem/name;
        }
        description 
          "Children of this subsystem, each contributing to the power
          draw of this subsystem.";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-3yang">
        <name>Module ietf-poweff-level-3.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-3 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-3";
  prefix ietf-poweff-level-3;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }
  import ietf-poweff-level-2 {
    prefix ietf-poweff-level-2;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 3.

    Copyright (c) 2024 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.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 3";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff {
    description 
      "Level 3 extends the Level 1 & 2 defintions with additional
      content.
      ";
    container power-save {
      description 
        "Container for power-save control functions that the
        Network Controller may use to ask this Network Element
        to employ zero or more power-saving techniques.
        ";

      list subsystem {
        key name;
        description 
          "List of subsystems that offer power-saving functions.
          ";
        leaf name {
          type leafref {
            path "/ietf-poweff-level-1:poweff/" +
            "ietf-poweff-level-1:stats/"+
            "ietf-poweff-level-2:subsystem/"+
            "ietf-poweff-level-2:name";
            require-instance false;
          }
          description 
            "Name of the subsystem that offers power-saving
            functionality. This name normally matches one of the
            names in the poweff/stats subsystem list, but it is
            possible that a subsystem is not listed there e.g.
            because it has not started yet, during the system
            initialization.
            ";
        }
        choice selected-power-save-mode {
          description 
            "Choice of power saving modes that the Controller
            may select. Additional power-saving modes may be
            augmented into this choice by implementors, but may
            not be known/understood by the controller.
            ";
          leaf fully-powered {
            type empty;
            description 
              "The subsystem is fully powered, i.e. does not take
              any power-saving measures that would risk lowering the
              performance below normal levels.
              ";
          }
          leaf powered-off {
            type empty;
            description 
              "The subsystem is completely powered off, i.e. it is
              drawing no or little power while also delivering zero
              performance.
              ";
          }
          container napping {
            description 
              "The subsystem is napping, i.e. is taking frequent but
              brief pauses in the service it provides.
              ";
            leaf max-additional-latency {
              type ietf-poweff-types:microseconds;
              description 
                "Determines the maximum tolerated length of the pauses
                with reduced performance. This means the maximum 
                additional delay that this subsystem would incur on 
                e.g. detecting incoming traffic or performing its 
                function.
                ";
            }
          }
          container throttling {
            description 
              "The subsystem is throttling, i.e. is running with
              reduced capacity in the service it provides.
              ";
            leaf max-capacity-reduction {
              type ietf-poweff-types:percent;
              description 
                "Determines the maximum tolerated reduction of 
                performance. If this setting is applied to a bundle
                interface, for example, that consists of 3 underlaying
                links of equal capacity, and the controller sets the
                max-capacity-reduction value to 50%, the bundle
                interface could shut down one of the links.
                ";
            }
          }
        }
        leaf max-time-to-cancel-power-save {
          type ietf-poweff-types:microseconds;
          description 
            "The maximum time the Controller allows the subsystem
            to recover full performance. The subsystem should not
            engage in power-saving measures that take longer than
            this time to revert to full performance.
            ";
        }
        leaf estimated-power-reduction {
          type uint32;
          config false;
          description 
            "The subsystem's own estimate on how much of its own
            power draw that is reduced by the power-saving
            measures in effect.
            If the controller sets a bundle interface that consists of
            3 underlaying links of equal capacity, for example, into 
            50% throttling mode, the subsystem might shut down one of
            the underlaying links and report an 
            estimated-power-reduction of 33%.
            ";
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-4yang">
        <name>Module ietf-poweff-level-4.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-4 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-4";
  prefix ietf-poweff-level-4;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 4.

    Copyright (c) 2024 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.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 4";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats {
    description 
      "Level 4 extends the Level 1, 2 & 3 defintions with 
      power draw data broken down on services.
      ";
    list service {
      key name;
      description 
        "List of services that the Network Element is aware of, and
        their current power draw. The power draw MAY be further
        subdivided for each service by using a dot notation.

        One service instance called '-idle-' may be present in the
        list and absorb any overhead/idle/other/unknown kind of power
        draw that the system would not allocate to any service.

        It is up to the implementor to decide what a 'service' means
        for this type of system. It may be any kind of service that it
        delivers user value towards. 

        For example, if a system serves three customers, X, Y and Z,
        their power draw could be declared as follows:

        | name          | current- | children                    |
        |               | power-   |                             |
        |               | draw     |                             |
        |---------------|----------|-----------------------------|
        | X             |       45 | [ vpn ]                     |
        | X.vpn         |       39 | [ eth1/16 eth2/33 eth3/11 ] |
        | X.vpn.eth1/16 |       14 |                             |
        | X.vpn.eth2/33 |       12 |                             |
        | X.vpn.eth3/11 |        9 |                             |
        | Y             |       26 |                             |
        | Z             |       19 |                             |
        | -idle-        |       48 |                             |
        
        The sum of the current-power-draw top level entries 
        (in this example: X, Y, Z and -idle-, with values
        45 + 26 + 19 + 48 = 138) must match the value provided in
        ietf-poweff-level-1:device-current-total-power-draw

        The sub-service values (e.g. X.vpn, 39W) need to be lower than
        or equal to (but do not necessarily need to match) their
        parent level (e.g. X, 45W).

        Note: the name of the children have been abbreviated in
        the diagram above. In the actual payload, the full names
        would always be used, e.g. 'eth1/16' above would actually be
        communicated as 'X.vpn.eth1/16'.
        ";
      leaf name {
        type string;
        description 
          "Name of the service/tenant/client/domain/function that the
          system allocates power draw for. Power draw MAY be further
          subdivided for each service by using a dot notation.
          ";
      }
      leaf current-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.service.current_power_draw;
        description 
          "The current power draw of the service provided in Watts.
          ";
      }
      leaf-list children {
        type leafref {
          path ../../service/name;
        }
        description 
          "Child-services that contribute to the service's power draw.
          All leafref values must exactly match the names used in
          the name leaf.
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-5yang">
        <name>Module ietf-poweff-level-5.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-5 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-5";
  prefix ietf-poweff-level-5;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }
  import ietf-poweff-level-3 {
    prefix ietf-poweff-level-3;
  }
  import ietf-poweff-level-4 {
    prefix ietf-poweff-level-4;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 5.

    Copyright (c) 2024 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.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 5";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-3:power-save {
    description 
      "Level 5 extends the Level 3 & 4 defintions with 
      power control for each on service instance.
      ";
    list service {
      key name;
      description 
        "List of services that offer power-saving functions.
        ";
      leaf name {
        type leafref {
          path "/ietf-poweff-level-1:poweff/" +
          "ietf-poweff-level-1:stats/"+
          "ietf-poweff-level-4:service/"+
          "ietf-poweff-level-4:name";
          require-instance false;
        }
        description
          "Name of the sservice instance that offers power-saving
          functionality. This name normally matches one of the
          names in the poweff/stats/service list, but it is
          possible that a service is not listed there e.g.
          because it has not started yet, or has been removed.
          ";
      }
      choice selected-power-save-mode {
        // FIXME: This is currently a copy of the level-3 power-save
        // modes. If it is to remain so, we should break it out into
        // a grouping. But maybe we want them to be different?
          description 
            "Choice of power saving modes that the Controller
            may select. Additional power-saving modes may be
            augmented into this choice by implementors, but may
            not be known/understood by the controller.
            ";
          leaf fully-powered {
            type empty;
            description 
              "The service is fully powered, i.e. does not take
              any power-saving measures that would risk lowering the
              performance below normal levels.
              ";
          }
          leaf powered-off {
            type empty;
            description 
              "The service is completely powered off, i.e. it is
              drawing no or little power while also delivering zero
              performance.
              ";
          }
          container napping {
            description 
              "The service is napping, i.e. is taking frequent but
              brief pauses in the service it provides.
              ";
            leaf max-additional-latency {
              type ietf-poweff-types:microseconds;
              description 
                "Determines the maximum tolerated length of the pauses
                with reduced performance. This means the maximum 
                additional delay that this service would incur on 
                e.g. detecting incoming traffic or performing its 
                function.
                ";
            }
          }
          container throttling {
            description 
              "The service is throttling, i.e. is running with
              reduced capacity in the functionality it provides.
              ";
            leaf max-capacity-reduction {
              type ietf-poweff-types:percent;
              description 
                "Determines the maximum tolerated reduction of 
                performance. If this setting is applied to a bundle
                interface, for example, that consists of 3 underlaying
                links of equal capacity, and the controller sets the
                max-capacity-reduction value to 50%, the bundle
                interface could shut down one of the links.
                ";
            }
          }
        }
      leaf max-time-to-cancel-power-save {
        type ietf-poweff-types:microseconds;
        description 
          "The maximum time the Controller allows the service
          to recover full performance. The service should not
          engage in power-saving measures that take longer than
          this time to revert to full performance.
          ";
      }
      leaf estimated-power-reduction {
        type uint32;
        config false;
        description 
          "The service's own estimate on how much of its own
          power draw that is reduced by the power-saving
          measures in effect.
          If the controller sets a bundle interface that consists of
          3 underlaying links of equal capacity, for example, into 
          50% throttling mode, the service might shut down one of
          the underlaying links and report a 
          estimated-power-reduction of 33%.
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>POWEFF data models define the data schemas for power consumption and energy efficiency data. POWEFF data models are based on YANG. YANG data models can be used independently of the transport and can be converted into any encoding format supported by the network configuration protocol. YANG is therefore largely management protocol independent.</t>
      <t>To enable the exchange of POWEFF data among all interested parties, deployment considerations that are out of the scope of this document, will need to include:</t>
      <ul spacing="normal">
        <li>
          <t>The data structure to describe all metrics and quantify relevant data consistently, i.e. specific formats like XML or JSON encoded message would be deemed valid or invalid based on POWEFF models.</t>
        </li>
        <li>
          <t>The process to share and collect POWEFF data across the consumers consistently, including the transport mechanism. The POWEFF YANG models can be used with network management protocols such as NETCONF <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/>, streaming telemetry, etc. OpenAPI specification could be considered to consume POWEFF metrics.</t>
        </li>
        <li>
          <t>How the configuration of assets should be done.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations mentioned in section 17 of <xref target="RFC7950"/> apply.</t>
      <t>POWEFF brings several security and privacy implications because of the various components and attributes of the information model. For example, each functional component can be tampered with to give manipulated data. POWEFF when used alone or with other relevant data, can identify an individual, revealing Personal Identifiable Information (PII). How the configuration of assets should be accomplished could lead to data being accessed by unauthorized entities.</t>
      <t>Methods exist to secure the communication of management information. The transport entity of the functional model MUST implement methods for secure transport. This document also contains an Information model and Data-Model in which none of the objects defined are writable. If the objects are deemed sensitive in a particular environment, access to them MUST be restricted using appropriately configured security and access control rights. The information model contains several optional elements which can be enabled or disabled for the purpose of privacy and security. Proper authentication and audit trail MUST be included for all the users/processes that access POWEFF data.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="the-ietf-xml-registry">
        <name>The IETF XML Registry</name>
        <t>FIXME</t>
      </section>
      <section anchor="the-yang-module-names-registry">
        <name>The YANG Module Names Registry</name>
        <t>FIXME</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.draft-lindblad-tlm-philatelist-03">
          <front>
            <title>Philatelist, YANG-based Network Controller collection and aggregation framework integrating Telemetry data and Time Series Databases</title>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>All For Eco</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   Timestamped telemetry data is collected en masse today.  Mature tools
   are typically used, but the data is often collected in an ad hoc
   manner.  While the dashboard graphs look great, the resulting data is
   often of questionable quality, not well defined, and hard to compare
   with seemingly similar data from other organizations.

   This document proposes a standard, extensible, cross domain framework
   for collecting and aggregating timestamped telemetry data in a way
   that combines YANG, metadata and Time Series Databases to produce
   more transparent, dependable and comparable results.  This framework
   is implemented in the Network Controller layer, but is rooted in data
   that is collected from all kinds of Network Elements and related
   systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lindblad-tlm-philatelist-03"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.draft-palmero-ivy-ps-almo-01">
          <front>
            <title>Asset Lifecycle Management and Operations: A Problem Statement</title>
            <author fullname="Marisol Palmero" initials="M." surname="Palmero">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Frank Brockners" initials="F." surname="Brockners">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Sudhendu Kumar" initials="S." surname="Kumar">
              <organization>NC State University</organization>
            </author>
            <author fullname="Camilo Cardona" initials="C." surname="Cardona">
              <organization>NTT</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica I+D</organization>
            </author>
            <date day="24" month="April" year="2024"/>
            <abstract>
              <t>   This document presents a problem statement for assets lifecycle
   management and operations.  It describes a framework, the motivation
   and requirements for asset-centric metrics including but not limited
   to, asset adoption, usability, entitlements, supported capabilities,
   and enabled capabilities.  The document also defines an information
   model.  The primaty objectives for the problem statement document is
   to validate and proof that the framework can measure and improve the
   network operators' experience along the lifecycle journey, from
   technical requirements and technology selection through renewal,
   including the end of life of an asset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-palmero-ivy-ps-almo-01"/>
        </reference>
        <reference anchor="I-D.draft-almprs-sustainability-insights-02">
          <front>
            <title>Sustainability Insights</title>
            <author fullname="Per Andersson" initials="P." surname="Andersson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Snezana Mitrovic" initials="S." surname="Mitrovic">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Marisol Palmero" initials="M." surname="Palmero">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esther Roure" initials="E." surname="Roure">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Gonzalo Salgueiro" initials="G." surname="Salgueiro">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Emile Stephan" initials="E." surname="Stephan">
              <organization>Orange</organization>
            </author>
            <date day="20" month="October" year="2023"/>
            <abstract>
              <t>   This document motivates the collection and aggregation of
   sustainability environmental related metrics.  It describes the
   motivation and requirements to collect asset centric metrics
   including but not limited to power consumption and energy efficiency,
   circular economy properties, and more general metrics useful in
   environmental impact analysis.  It provides foundations for building
   an industry-wide, open-source framework for the reduction of
   greenhouse gas emissions, enabling measurement and optimization of
   the overall impact on the environment of networking devices, software
   applications, services, and solutions across the lifecycle journey.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-almprs-sustainability-insights-02"/>
        </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="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>
      </references>
    </references>
    <?line 1526?>

<section numbered="false" anchor="change-log">
      <name>Change log</name>
      <t>RFC Editor Note: This section is to be removed during the final publication of the document.</t>
      <ul spacing="normal">
        <li>
          <t>From version -00 to -01  </t>
          <ul spacing="normal">
            <li>
              <t>Spelling corrections</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From version draft-opsawg-poweff-02 to draft-pslm-poweff-00  </t>
          <ul spacing="normal">
            <li>
              <t>Renamed draft</t>
            </li>
            <li>
              <t>Moved WG to GREEN</t>
            </li>
            <li>
              <t>Updated one author affiliation</t>
            </li>
            <li>
              <t>Moved YANG modules to yang/ directory</t>
            </li>
            <li>
              <t>Switched to building using MartinThompsons RFC build env.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From version -01 to -02  </t>
          <ul spacing="normal">
            <li>
              <t>Adapted to leverage the updated Philatelist framework</t>
            </li>
            <li>
              <t>Added the dashboard concept</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From version -00 to -01  </t>
          <ul spacing="normal">
            <li>
              <t>Major rewrite as a device level YANG framework</t>
            </li>
            <li>
              <t>Added the implementation levels concept</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Version -00  </t>
          <ul spacing="normal">
            <li>
              <t>Initial version.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was created by meaningful contributions from Per Andersson, Jeff Apcar, Derek Engi, Esther Roure Vila, Pascal Thubert, Klaus Verschure, Joel Goergen, Colin Seward, Michael King, Angelo Fienga and Suresh Krishnan.</t>
      <t>The authors wish to thank them and many others for their helpful comments and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
