<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.12 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-opsawg-poweff-01" category="std" consensus="true" submissionType="IETF" xml:lang="en">

  <front>
    <title abbrev="POWEFF">Power and Energy Efficiency</title>

    <author initials="J." surname="Lindblad" fullname="Jan Lindblad">
      <organization>Cisco Systems</organization>
      <address>
        <email>jlindbla@cisco.com</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="2024" month="May" day="07"/>

    <area>operations</area>
    <workgroup>OPSA Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


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


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<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-01"/> 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 multuple implementation levels, that new devices may choose to implement.  Standardized calculations utilizing the specified datasets and attributes which will yield a power consumption value for any asset or network element, and standardized calculations utilizing the specified datasets and attributes which will yield the energy efficiency value for any asset or network element.</t>

<section anchor="requirements-language" title="Requirements language">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”,
“MAY”, and “OPTIONAL” in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="terminology" title="Terminology">

<t>Terminology and abbreviations used in this document:</t>

<t><list style="hanging">
  <t hangText='Asset'>
  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>
  <t hangText='Scope 1'>
  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>
  <t hangText='Scope 2'>
  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>
  <t hangText='Scope 3'>
  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>
  <t hangText='Scope 4'>
  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>
  <t hangText='CO2eq'>
  Carbon dioxide equivalents, a measure of the disruptive force of greenhouse gas emissions.</t>
  <t hangText='Power'>
  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>
  <t hangText='Energy Efficiency'>
  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>
</list></t>

</section>
<section anchor="motivation" title="Motivation">

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

<t><list style="symbols">
  <t>Availability of primary data.  Data is often only available on a case by case basis</t>
  <t>Varying APIs.  Where Telemetry might be available, access methods, data contents and formats are specific to platforms or elements</t>
  <t>Limitations.  Some useful or essential data items are never collected by the relevant hardware or software</t>
  <t>Precision.  Data often contains significant margins of error, both from random noise and systematic errors</t>
  <t>Varying definitions.  Calculated values use differing inputs and algorithms, limiting the value of any possible comparison and aggregation</t>
  <t>Opacity.  Lack of transparency of how and what is being measured makes it very hard to ascertain fair comparisions.</t>
</list></t>

<section anchor="proposed-solution-outline" title="Proposed Solution Outline">

<t>Formulate a Power and Energy Efficiency Telemetry Specification to promote consistency:</t>

<t><list style="hanging">
  <t hangText='Data'>
  Definition of datasets and attributes that will define a common data model to report power and energy consumption on hardware and software assets</t>
  <t hangText='Calculation'>
  Define a standardized calculation utilizing the specified datasets and attributes which will yield an energy consumption value for any asset.</t>
</list></t>

<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" title="Use Cases">

<t><list style="symbols">
  <t>Monitoring power and energy efficiency based on common metrics.</t>
  <t>Enhance reporting and provide a comprehensive overview for potentially improving power usage during the operational phase.</t>
  <t>Consumption per device, e.g. wireless environment.</t>
  <t>Capabilities to optimize energy consumption when assets are not in use, e.g. idle and allocated power.</t>
  <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>
</list></t>

<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" title="Information Model">

<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" title="Level 0, Proprietary Dashboard Only">

<t>At level 0, the device implements only proprietary dashboards, without implmementing 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 delievered 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" title="Level 1, Current Total Power Draw">

<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 title="YANG tree diagram of the Level 1 Dashboard."><artwork type="yang-tree"><![CDATA[
module: ietf-poweff-level-1
  +--rw poweff
     +--ro stats
        +--ro device-current-total-power-draw?   uint32
]]></artwork></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" title="Level 2, Add Energy and Susbsystem Breakdown">

<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 title="YANG tree diagram of the Level 2 Dashboard."><artwork 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
]]></artwork></figure>

</section>
<section anchor="level-3-add-fundamental-power-control" title="Level 3, Add Fundamental Power Control">

<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 performace it could tolerate, and for the Network Element to decide on what power saving measures that 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>

<t><list style="hanging">
  <t hangText='fully-powered'>
  The subsystem is fully powered, i.e. does not take any power-saving measures that would risk lowering the performance below normal levels.</t>
  <t hangText='powered-off'>
  The subsystem is completely powered off, i.e. it is drawing no or little power while also delivering zero performance.</t>
  <t hangText='napping'>
  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>
  <t hangText='throttling'>
  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>
</list></t>

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

<t><list style="hanging">
  <t hangText='max-time-to-cancel-power-save'>
  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>
  <t hangText='estimated-power-reduction'>
  The subsystem’s own estimate on how much of its own power draw that is reduced by the power-saving measures in effect.</t>
</list></t>

<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 title="YANG tree diagram of the Level 3 Dashboard."><artwork 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
]]></artwork></figure>

</section>
<section anchor="level-4-add-service-attribution" title="Level 4, Add Service Attribution">

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

<texttable>
      <ttcol align='left'>name</ttcol>
      <ttcol align='left'>current-power-draw</ttcol>
      <ttcol align='left'>children</ttcol>
      <c>X</c>
      <c>45</c>
      <c>vpn</c>
      <c>X.vpn</c>
      <c>39</c>
      <c>eth1/16 eth2/33 eth3/11</c>
      <c>X.vpn.eth1/16</c>
      <c>14</c>
      <c>&#160;</c>
      <c>X.vpn.eth2/33</c>
      <c>12</c>
      <c>&#160;</c>
      <c>X.vpn.eth3/11</c>
      <c>9</c>
      <c>&#160;</c>
      <c>Y</c>
      <c>26</c>
      <c>&#160;</c>
      <c>Z</c>
      <c>19</c>
      <c>&#160;</c>
      <c>-idle-</c>
      <c>48</c>
      <c>&#160;</c>
</texttable>

<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 title="YANG tree diagram of the Level 4 Dashboard."><artwork 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
]]></artwork></figure>

</section>
<section anchor="level-5-add-service-level-power-control" title="Level 5, Add Service Level Power Control">

<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 title="YANG tree diagram of the Level 5 Dashboard."><artwork 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
]]></artwork></figure>

</section>
</section>
<section anchor="yang-modules" title="YANG Modules">

<section anchor="module-ietf-poweff-typesyang" title="Module ietf-poweff-types.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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.
      ";
  }
}
]]></artwork></figure>

</section>
<section anchor="module-ietf-poweff-level-1yang" title="Module ietf-poweff-level-1.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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).
          ";
      }
    }
  }
}
]]></artwork></figure>

</section>
<section anchor="module-ietf-poweff-level-2yang" title="Module ietf-poweff-level-2.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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.";
      }
    }
  }
}
]]></artwork></figure>

</section>
<section anchor="module-ietf-poweff-level-3yang" title="Module ietf-poweff-level-3.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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%.
            ";
        }
      }
    }
  }
}
]]></artwork></figure>

</section>
<section anchor="module-ietf-poweff-level-4yang" title="Module ietf-poweff-level-4.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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.
          ";
      }
    }
  }
}
]]></artwork></figure>

</section>
<section anchor="module-ietf-poweff-level-5yang" title="Module ietf-poweff-level-5.yang">
<figure sourcecode-markers="true"><artwork type="yang"><![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 OPSA (Operations and Management Area) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jlindbla@cisco.com>
     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%.
          ";
      }
    }
  }
}
]]></artwork></figure>

</section>
</section>
<section anchor="deployment-considerations" title="Deployment Considerations">

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

<t><list style="symbols">
  <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>
  <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>
  <t>How the configuration of assets should be done.</t>
</list></t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<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" title="IANA Considerations">

<section anchor="the-ietf-xml-registry" title="The IETF XML Registry">

<t>FIXME</t>

</section>
<section anchor="the-yang-module-names-registry" title="The YANG Module Names Registry">

<t>FIXME</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>



<reference anchor="I-D.draft-lindblad-tlm-philatelist-01" target="https://datatracker.ietf.org/api/v1/doc/document/draft-lindblad-tlm-philatelist/">
  <front>
    <title>Philatelist, YANG-based Network Controller collection and aggregation framework integrating Telemetry data and Time Series Databases</title>
    <author fullname="Jan Lindblad"/>
    <date day="7" month="May" year="2024"/>
    <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.</t>
      <t>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-01"/>
</reference>

<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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 title='Informative References'>



<reference anchor="I-D.draft-palmero-ivy-ps-almo-01" target="https://datatracker.ietf.org/doc/html/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" target="https://datatracker.ietf.org/doc/html/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="Stephan Emile" initials="S." surname="Emile">
      <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" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>


<section numbered="false" anchor="change-log" title="Change log">

<t>RFC Editor Note: This section is to be removed during the final publication of the document.</t>

<t><list style="symbols">
  <t>From version -01 to -02  <list style="symbols">
      <t>Adapted to leverage the updated Philatelist framework</t>
      <t>Added the dashboard concept</t>
    </list></t>
  <t>From version -00 to -01  <list style="symbols">
      <t>Major rewrite as a device level YANG framework</t>
      <t>Added the implementation levels concept</t>
    </list></t>
  <t>Version -00  <list style="symbols">
      <t>Initial version.</t>
    </list></t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgments" title="Acknowledgments">

<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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
6QPRQn3WQbuXFxZVJuCO5xKe9jsbe5AgYfF16dSeunpq9spIKUOvXr2XFdYd
KihMgz3UK8N74EmTbucXqnGABK2w82Ab2xzZineetjI6ZjlmY1VVrDZ5QtEo
o6Dtks7MS/Mz1ZnPeRZ3DUjlslF3HUgpByqj6Y46Wr+D3cor14EGlZk4mlkZ
LHKWlAz5YxhoYWh688r1pXxeMEX1tDlBQXeZdDlTUmSZu+WrvGB1KS6Fsas3
ulUZmRNh2EG6yi5LESrxq+1utFyY4W73Wy5Msva2ywWol7E6ochrsP0mELT+
Ys2FKe50zeZyBG2MjFINS5PwBWxstetNLvNcmGTTqz1X7UeOtLmP+cJ+5Hzr
8TD/dZaPFg9nORIAlMd3uTK0Ns3WV4jWZrjLnaK1Sba/ZLQ2RXnraA1VVcS+
XkuT3k2E9yDLdbebLkywzV2nG5Jlw92JG5KlvNb0wBRZuc6wNr5CfZc2eKgL
pghT3hOJ14j1QFEli6Jasf81CCPO85eXVq2+/7E2zdL7IG1cw7t1HCA0DWpD
rb69Ejbx6OA3HDRYtxe5Mavxnkm5drV2FpuQfPmbo5ildx3UDfbNZdlyo+n6
DtevVrXmna5i9We407WsVRg2vaJ1yQEtHMPyO0BrR7CY1Wl+f2D9EWx5NeyC
rb/NNbFVq7fhylj/+8tBI69Z5vcYZJG9K9NseNVrRV6QJV2ZBe+a9fQC31dc
dc74StdFNl2gFd0ADUqV8hLYKnmuvRF2DVW9gVTL8faplpONUy0nD59qOVmd
ajn5p0i1tN7lSf6l8iQn7/Ik7/Ik7/Ikv8I8ycnD50nuUfB70pRBaasj9Vsw
jBaTKDLUs+lQSahent3o1Bo15TXSdiWpCaZUg3irdywDtPcbuoBp7WpBUH+z
kJq2EAm4OQq6M7T+3uaa26Xd+LvdMm1H3/226dL4v8+t026WO94+Xe7kPtdQ
u0nudx11uZnV11Lbx+5zPfUC/Xh0suaaajtu+XXVay+pLocsfCMuU8NXm09B
e2j6aukUy2/HXndRdrlq84XZdE32X+mi7O/WbqT5umy6JPuvS6/J/q4+Re2y
7A2uyG6YonJV9gYXZDdMUb0oe/2l1OUUzddkb3A5djmk+ZLsDa7GLoc0X5G9
zcXY9pfrO1yQ7QZvfVG2G3nnC7PdDHco724t7PquF2i7ae56kbabYOWF2vah
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
a6bDIfpRlO38/4PbNA5L8AAA

-->

</rfc>

