Skip to main content

A YANG Data Model for Energy Saving Management
draft-cwbgp-ivy-energy-saving-management-01

Document Type Active Internet-Draft (individual)
Authors Gen Chen , Qin Wu , Mohamed Boucadair , Oscar Gonzalez de Dios , Carlos Pignataro
Last updated 2024-03-02
RFC stream (None)
Intended RFC status (None)
Formats
Yang Validation 7 errors, 2 warnings
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-cwbgp-ivy-energy-saving-management-01
Network Inventory YANG                                           G. Chen
Internet-Draft                                                     Q. Wu
Intended status: Standards Track                                  Huawei
Expires: 29 August 2024                                     M. Boucadair
                                                                  Orange
                                                           O. G. D. Dios
                                                          Telefonica I+D
                                                            C. Pignataro
                                         North Carolina State University
                                                           01 March 2024

             A YANG Data Model for Energy Saving Management
            draft-cwbgp-ivy-energy-saving-management-01

Abstract

   This document defines a YANG module for power and energy management.
   The document covers both device and network levels.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Network Inventory YANG
   Working Group mailing list (inventory-yang@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/inventory-yang/.

   Source for this draft and an issue tracker can be found at
   https://github.com/boucadair/draft-cwbgp-energy-saving-management.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 29 August 2024.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction
   2.  Conventions and Definitions
   3.  YANG Prefixes
   4.  Energy Saving Management Data Model Overview
     4.1.  Energy Saving Management Tree Diagram
     4.2.  Network Element Specific Information
     4.3.  Component Specific Information
   5.  Energy Saving YANG Module
     5.1.  Security Considerations
   6.  IANA Considerations
     6.1.  The "IETF XML" Registry
     6.2.  The "YANG Module Names" Registry
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Acknowledgments
   Authors' Addresses

1.  Introduction

   With the growth of networks and the increase of awareness about the
   environmental impact, it is important to ensure energy efficiency in
   the operation of network infrastructures.  Operators are thus seeking
   for more information to reflect the power consumption of a network
   and the contribution of involved nodes.  As described in Section 3.4
   of [RFC6988], monitoring energy, power can be required for purposes
   such as:

   o designing control loops for energy saving
   o investigating energy-saving potential
   o evaluating the effectiveness of energy-saving policies and
     measures
   o accounting for the total power received and provided by an entity,
     a network, or a service
   o predicting an entity's reliability based on power usage
   o planning for the next maintenance cycle for an entity

   However, there are no standard mechanisms to report and control power
   usage or energy consumption of different networking equipment under
   different network configuration and conditions.  For example, in
   'tidal network' in which traffic volume undergoes significant
   fluctuations at different times, various energy management methods
   might be envisaged to optimize the energy efficiency at the network
   scale, e.g., by selectively disabling ports or cards on specific
   network nodes based on (forecast) traffic patterns.

   This document defines a YANG data model for use in energy management
   of network devices.  Such model can be used for monitoring the energy
   consumption of network devices, such as (but are not limited to)
   routers, switches, security gateways, hosts, or servers.  Where
   applicable, device monitoring extends to the individual components of
   the device.

   The document augments both "ietf-network" [RFC8345] and "ietf-
   network-inventory" [I-D.ietf-ivy-network-inventory-yang] with the
   following rationale:

   *  Parameters that reflect the saving modes and methods are
      considered as capabilities, and are thus maintained in the
      inventory.

   *  Required parameters to control and adjust nodes and components
      behaviors are added to the network topology as this allows
      operator to better assess the implications on node-specific action
      on the overall network.

2.  Conventions and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   The meanings of the symbols in the YANG tree diagrams are defined in
   [RFC8340].

   The following terms are used in the document:

   Network Inventory:  A collection of data for network devices and
      their components managed by a specific management system
      [I-D.ietf-ivy-network-inventory-yang].

   Chassis:  A physical container that allows installation of power
      modules, fan modules, and various types of boards and cards
      [I-D.ietf-ivy-network-inventory-yang].

   Network Element:  A manageable network entity that contains hardware
      and software units, e.g., a network device installed on one or
      several chassis [I-D.ietf-ivy-network-inventory-yang].

   Board and Card:  A pluggable equipment can be inserted into one or
      several slots/ sub-slots and can afford a specific transmission
      function independently [I-D.ietf-ivy-network-inventory-yang].  The
      core modular units for processing data.  Depending on functions,
      they can be classified into Main Processing Unit (MPU), Switch
      Fabric Unit (SFU), Line Processing Unit (LPU), and other types.
      MPU is responsible for system control, management, and monitoring.
      SFU is responsible for line-rate data switching on the data plane.
      LPU is responsible for data packet processing and traffic
      management.

   Port and Interface:  A port is a physical entity that is used for
      connections.  While an interface is a logical entity for
      connections.

3.  YANG Prefixes

   Names of data nodes and other data model objects are prefixed using
   the standard prefix associated with the corresponding YANG imported
   modules, as shown in Table 1.

             +========+========================+=============+
             | Prefix | YANG Module            | Reference   |
             +========+========================+=============+
             | ianahw | iana-hardware          | [IANA_YANG] |
             +--------+------------------------+-------------+
             | ni     | ietf-network-inventory | RFC IIII    |
             +--------+------------------------+-------------+

              Table 1: Prefixes and Corresponding YANG modules

      RFC Editor Note: Please replace IIII with the RFC number assigned
      to [I-D.ietf-ivy-network-inventory-yang].

4.  Energy Saving Management Data Model Overview

   As described in [I-D.ietf-ivy-network-inventory-yang], the Network
   Inventory YANG data model is used to maintain the base network
   inventory information.  This document defines the YANG module "ietf-
   energy-saving-mgt", which augments network element of the network
   Inventory base model with energy saving modes, associated energy
   saving methods and augments the component of the network inventory
   base model with capability related power attributes.  In addition,
   "ietf-energy-saving-mgt" also augments the node of asbstract network
   model defined in [RFC8345] with energy consumption and power usage
   related attributes.

   At the network element level, the data model covers configuration of
   the energy saving mode and a set of related parameters to manage
   (e.g., retrieve, adjust) the status of power units, fans, boards,
   cards, ports, processors, and links.  For example, the adjustment
   methods include frequency tuning, shutdown, or sleep mode.  In
   addition, the methods also support the energy saving configuration
   for the 'tidal' traffic flow, where related components can be turned
   off, e.g., during "idle" hours to optimize the energy consumption and
   then woken up based on some triggered (e.g., busy hours or other
   scheduled events).

   The data model defines energy saving modes representing some energy
   consumption levels, which are basic, standard, deep.  For each
   consumption level, there is a combination of methods to reach the
   energy saving target level.

   At the component level, the data model includes a set of monitoring
   statistics for energy consumption and energy saving operational state
   of each component within the network device.  It also includes
   threshold related power parameters such as rated power, expected
   volts.

4.1.  Energy Saving Management Tree Diagram

   Figure 1 shows the tree diagram of the YANG data model defined in
   Section 5.

   module: ietf-energy-saving-mgt
     +--rw component-energy-monitoring
        +--rw energy-consumption
        |  +--rw average-power?     yang:gauge64
        |  +--rw saved-power?       yang:gauge64
        |  +--rw real-power?        yang:gauge64
        |  +--rw actual-volts?      int32
        |  +--rw actual-amperes?    int32
        |  +--rw actual-celsius?    int32
        +--rw energy-saving
        |  +--rw enabled?      boolean
        |  +--rw power-state?   identityref
        +--rw inventory-component-ref
           +--rw node-ref?   leafref
           +--rw ne-ref?
                   -> /ni:network-elements/network-element/ne-id

     augment /nw:networks/nw:network/nw:node:
       +--ro energy-power-consumption {energy-saving}?
       |  +--ro total-energy-consumption?   yang:gauge64
       |  +--ro saved-energy?               yang:gauge64
       |  +--ro eer?                        decimal64
       +--rw energy-saving-modes {energy-saving}?
          +--rw energy-saving-mode* [mode]
             +--rw mode                    identityref
             +--rw energy-saving-method*   identityref

     augment /ni:network-elements/ni:network-element:
       +--ro energy-management {energy-saving}?
          +--ro energy-monitoring-capability?   boolean
          +--rw energy-saving-modes
             +--rw energy-saving-mode* [mode]
                +--rw mode                    identityref
                +--rw energy-saving-method*   identityref

     augment /ni:network-elements/ni:network-element/ni:components
               /ni:component:
       +--ro power-parameters {energy-saving}?
          +--ro temperature-upper-bound?    int32
          +--ro temperature-middle-bound?   int32
          +--ro temperature-lower-bound?    int32
          +--ro rated-power?                yang:gauge64
          +--ro expected-volts?             int32
          +--ro low-volts-bound?            int32
          +--ro low-volts-fatal?            int32
          +--ro high-volts-bound?           int32
          +--ro high-volts-fatal?           int32

             Figure 1: Energy Saving Management Tree Structure

4.2.  Network Element Specific Information

   Network element specific attributes can be defined in the network
   element list node as shown in Figure 2.

     augment /nw:networks/nw:network/nw:node:
       +--ro energy-power-consumption {energy-saving}?
       |  +--ro total-energy-consumption?   yang:gauge64
       |  +--ro saved-energy?               yang:gauge64
       |  +--ro eer?                        decimal64
       +--rw energy-saving-modes {energy-saving}?
          +--rw energy-saving-mode* [mode]
             +--rw mode                    identityref
             +--rw energy-saving-method*   identityref
     augment /ni:network-elements/ni:network-element:
       +--ro energy-management {energy-saving}?
          +--ro energy-monitoring-capability?   boolean
          +--ro energy-saving-modes
             +--ro energy-saving-mode* [mode]
                +--ro mode                    identityref
                +--ro energy-saving-method*   identityref

          Figure 2: Network Element Specific Energy Tree Structure

4.3.  Component Specific Information

   Component-specific attributes can be defined under the component list
   node as shown in Figure 3.

   module: ietf-energy-saving-mgt
     +--rw component-energy-monitoring
        +--rw energy-consumption
        |  +--rw average-power?    yang:gauge64
        |  +--rw saved-power?      yang:gauge64
        |  +--rw real-power?       yang:gauge64
        |  +--rw actual-volts?     int32
        |  +--rw actual-amperes?   int32
        |  +--rw actual-celsius?   int32
        +--rw energy-saving
        |  +--rw enabled?       boolean
        |  +--rw power-state?   identityref
        +--rw inventory-component-ref
           +--rw node-ref?      leafref
           +--rw ne-ref?
           -> /ni:network-elements/network-element/ne-id

   augment /ni:network-elements/ni:network-element/ni:components
           /ni:component:
     +--ro power-parameters {energy-saving}?
         +--ro temperature-upper-bound?    int32
         +--ro temperature-middle-bound?   int32
         +--ro temperature-lower-bound?    int32
         +--ro rated-power?                yang:gauge64
         +--ro expected-volts?             int32
         +--ro low-volts-bound?            int32
         +--ro low-volts-fatal?            int32
         +--ro high-volts-bound?           int32
         +--ro high-volts-fatal?           int32
   ...

             Figure 3: Component-Specifc Energy Tree Structure

5.  Energy Saving YANG Module

   The module imports XXX and uses types defined in XXX.

   <CODE BEGINS> file "ietf-energy-saving-mgt@2024-01-23.yang"
   module ietf-energy-saving-mgt {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-energy-saving-mgt";
     prefix em;

     import ietf-network-inventory {
       prefix ni;
       reference
         "RFC IIII: A YANG Data Model for Network Inventory";
     }
     import ietf-yang-types {
       prefix yang;
       reference
         "RFC 6021: Common YANG Types";
     }
     import ietf-network {
       prefix nw;
       reference
         "RFC 8345: A YANG Data Model for Network Topologies";
     }

     organization
       "IETF IVY Working Group.";
     contact
       "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>;
        WG List:  <mailto:opsawg@ietf.org>

        Author:   Gen Chen
                  <mailto:chengen@huawei.com>
        Editor:   Qin Wu
                  <mailto:bill.wu@huawei.com>
        Editor:   Mohamed Boucadair
                  <mailto:mohamed.boucadair@orange.com>
        Author:   Carlos Pignataro
                  <mailto:cpignata@gmail.com>";
     description
       "This module contains a collection of YANG definitions for power
        and energy management of devices. It also augments both the
        network topology and inventory models.

        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; see
        the RFC itself for full legal notices.";

     revision 2024-01-23 {
       description
         "Initial revision.";
       reference
         "RFC XXXX: A YANG Data Model for Energy Saving Management";
     }

     feature energy-saving {
       description
         "Specifies support of energy saving management.";
     }

     identity energy-saving-mode {
       description
         "Base identity for energy saving mode.";
     }

     identity basic {
       base energy-saving-mode;
       description
         "Basic energy saving mode.

          In this mode, the system will shut down idle modules
          and put them in a sleep mode.";
     }

     identity standard {
       base energy-saving-mode;
       description
         "Standard energy saving mode.

          In this mode, the system extends basic energy saving
          mode with more advanced Lossless energy saving features,
          e.g., power module schedule.";
     }

     identity deep {
       base energy-saving-mode;
       description
         "Deep energy saving mode.

          In this mode, the system extends standard energy saving
          mode with more advanced system level energy saving features,
          e.g., board scheduling.";
     }

     identity energy-saving-method {
       description
         "Base identity for energy saving method.";
     }

     identity zone-based-fan-speed-adjustment {
       base energy-saving-method;
       description
         "The system collects information about the
          temperatures of the service boards in the chassis
          and the zones where the service boards reside.

          According to the current temperature and target
          temperature of each board, the system implements
          stepless speed adjustment in different zones.";
     }

     identity unused-high-speed-interface-shutdown {
       base energy-saving-method;
       description
         "When detecting an unused high-speed interface, the
          system shuts down the interface to reduce power consumption
          of the interface circuits.

          When the interface needs to run service, the
          system will automatically wake up the interface and
          restore the interface to the normal working state.";
     }

     identity unused-port-shutdown {
       base energy-saving-method;
       description
         "When detecting an unused user port, the system automatically
          or manually shuts down the interface circuits and optical
          module of the port to reduce port power consumption. When
          detecting that the port needs to run service, the system
          automatically enables the port and restores the port to the
          normal running state, without affecting application of the
          board.";
     }

     identity unused-board-shutdown {
       base energy-saving-method;
       description
         "When detecting an unused board, the system automatically
          shuts down the power supply of the board, ensuring zero
          power consumption of an unused board.

          When detecting that the board needs to run service, the system
          automatically powers on the board and restores the board
          to the normalrunning state, without affecting application of
          the whole device.";
     }

     identity dynamic-frequency-adjustment {
       base energy-saving-method;
       description
         "When detecting that a service board is carrying a small
          service load, the system automatically reduces the working
          frequency of the service processing module of the board
          while maintaining the service quality. In doing so, power
          consumption of the service processing module is reduced.
          When the service load of the board increases, the system
          automatically increases the working frequency of the service
          processing module to meet service needs.";
     }

     identity unused-channel-shutdown {
       base energy-saving-method;
       description
         "When an unused channel is detected, the unused channel is
          closed. Dynamically open the channel when detecting that
          there are services on the channel.";
     }

     identity load-based-power-module-scheduling {
       base energy-saving-method;
       description
         "Power modules intelligently schedule internal power supply
          based on the power load. When the power load decreases,
          some power supplies are automatically disabled.

          When the power load increases, the disabled power supplies
          are enabled again. ";
     }

     identity load-based-board-scheduling {
       base energy-saving-method;
       description
         "Boards intelligently schedule internal forwarding resources
          based on the service load. When the service load decreases,
          some forwarding resources are automatically disabled or the
          working frequency of the forwarding resources is reduced.

          When the service load increases, the disabled forwarding
          resources are enabled again or the working frequency of
          forwarding resources is improved. In the case of burst
          traffic, packet forwarding may be delayed, but packets
          will not be lost.";
     }

     identity energy-saving-power-state {
       description
         "Base identity for power state.";
       reference
         "RFC 7326: Energy Management Framework";
     }

     identity off-state {
       base energy-saving-power-state;
       description
         "Indicates that the component typically
                requires a complete boot when awakened.";
       reference
         "RFC 7326: Energy Management Framework";
     }

     identity sleep-state {
       base energy-saving-power-state;
       description
         "Indicates that a component with energy management support
          is not functional but immediately available such as
          wake up mechanism.";
       reference
         "RFC 7326: Energy Management Framework";
     }

     identity low-power-state {
       base energy-saving-power-state;
       description
         "Indicates that some components with energy management
          support are available and can take measures to use less
          energy.";
       reference
         "RFC 7326: Energy Management Framework";
     }

     identity full-power-state {
       base energy-saving-power-state;
       description
         "Indicates that all components with energy management
          support are available and may use maximum power.";
       reference
         "RFC 7326: Energy Management Framework";
     }

     typedef energy-saving-operator {
       type enumeration {
         enum on {
           value 1;
           description
             "Power-on for energy saving.";
         }
         enum off {
           value 2;
           description
             "Power-off for energy saving.";
         }
       }
       description
         "Energy saving operator.";
     }

     grouping network-element-ref {
       description
         "Contains the information necessary to reference a network
          element.";
       leaf ne-ref {
         type leafref {
           path "/ni:network-elements/ni:network-element/ni:ne-id";
           require-instance false;
         }
         description
           "Used to reference a network element.";
       }
     }

     grouping component-ref {
       description
         "Contains the information necessary to reference a component.";
       leaf node-ref {
         type leafref {
           path "/ni:network-elements/ni:network-element[ni:ne-id="
              + "current()/../ne-ref]/ni:components/ni:component"
              + "/ni:component-id";
           require-instance false;
         }
         description
           "Used to reference a component.";
       }
       uses network-element-ref;
     }

     grouping energy-consumption-data {
       description
         "Grouping for energy monitoring.";
       leaf average-power {
         type yang:gauge64;
         units "mW";
         description
           "The average consumed power.";
       }
       leaf saved-power {
         type yang:gauge64;
         units "mW";
         description
           "The saved power.";
       }
       leaf real-power {
         type yang:gauge64;
         units "mW";
         description
           "The actual observed consumed power.";
         reference
           "RFC 6988: Requirements for Energy Management";
       }
       leaf actual-volts {
         type int32;
         units "mV";
         description
           "The actual observed voltage.";
         reference
           "RFC 6988: Requirements for Energy Management";
       }
       leaf actual-amperes {
         type int32;
         units "mA";
         description
           "The actual observed current.";
         reference
           "RFC 6988: Requirements for Energy Management";
       }
       leaf actual-celsius {
         type int32;
         units "0.01 C";
         description
           "The actual observed temperature.";
       }
     }

     grouping energy-saving-modes {
       description
         "Grouping for energy saving mode and methods.";
       list energy-saving-mode {
         key "mode";
         description
           "The energy saving mode.";
         leaf mode {
           type identityref {
             base energy-saving-mode;
           }
           description
             "The energy saving mode.";
         }
         leaf-list energy-saving-method {
           type identityref {
             base energy-saving-method;
           }
           description
             "The energy saving method.";
         }
       }
     }

     grouping power-parameters {
       description
         "Grouping for energy paramters.";
       leaf temperature-upper-bound {
         type int32;
         units "0.01 C";
         description
           "The upper bound overheat temperature of the component.
            Upon the upper bound is exceeded, an alarm will be
            triggered to indicate fatal failure.";
         reference
           "RFC 8632: A YANG Data Model for Alarm Management";
       }
       leaf temperature-middle-bound {
         type int32;
         units "0.01 C";
         description
           "The middle bound overheat temperature of the component.
            Upon the middle bound is exceeded, an alarm will be
            triggered.";
         reference
           "RFC 8632: A YANG Data Model for Alarm Management";
       }
       leaf temperature-lower-bound {
         type int32;
         units "0.01 C";
         description
           "The lower bound overheat temperature of the component.
            Upon the lower bound is exceeded, the alarm will be
            triggered.";
         reference
           "RFC 8632: A YANG Data Model for Alarm Management";
       }
       leaf rated-power {
         type yang:gauge64;
         units "mW";
         description
           "The rated power.";
       }
       leaf expected-volts {
         type int32;
         units "mV";
         description
           "The expected volts.";
       }
       leaf low-volts-bound {
         type int32;
         units "mV";
         description
           "The lower volts bound which might cause equipment
            misbehavior or even damage.";
       }
       leaf low-volts-fatal {
         type int32;
         units "mV";
         description
           "The lowest volts bound which might cause equipment fatal
            damage.";
       }
       leaf high-volts-bound {
         type int32;
         units "mV";
         description
           "The higher volts bound which should trigger an alarm.";
         reference
           "RFC 8632: A YANG Data Model for Alarm Management";
       }
       leaf high-volts-fatal {
         type int32;
         units "mV";
         description
           "The highest volts bound of monitoring class which
            will cause fatal failure.";
       }
     }

     augment "/nw:networks/nw:network/nw:node" {
       if-feature "energy-saving";
       description
         "Energy monitoring data for network element.";
       container energy-power-consumption {
         config false;
         description
           "Statistics data about energy and power monitoring.";
         leaf total-energy-consumption {
           type yang:gauge64;
           units "Wh";
           description
             "Accumulated energy consumption of equipment.";
         }
         leaf saved-energy {
           type yang:gauge64;
           units "Wh";
           description
             "Saved energy consumption of equipment.";
         }
         leaf eer {
           type decimal64 {
             fraction-digits 18;
           }
           units "Gbps/Watt";
           description
             "The energy efficiency rating (EER) is a metric
              generally defined as a functional unit divided by
              the energy used.";
         }
       }
       container energy-saving-modes {
         description
           "List of the energy saving mode.";
         uses energy-saving-modes;
       }
     }

     augment "/ni:network-elements/ni:network-element" {
       if-feature "energy-saving";
       description
         "Energy management static data for network element.";
       container energy-management {
         config false;
         description
           "Statistics of the energy management.";
         leaf energy-monitoring-capability {
           type boolean;
           description
             "Indicates whether monitoring can be performed.";
         }
         container energy-saving-modes {
           description
             "List of supported energy saving modes.";
           uses energy-saving-modes;
         }
       }
     }

     augment "/ni:network-elements/ni:network-element/ni:components"
           + "/ni:component" {
       if-feature "energy-saving";
       description
         "Energy management static data for component.";
       container power-parameters {
         config false;
         description
           "Power parameter monitoring.";
         uses power-parameters;
       }
     }

     container component-energy-monitoring {
       description
         "Energy monitoring data for components.";
       container energy-consumption {
         description
           "Statistics of component about energy monitoring.";
         uses energy-consumption-data;
       }
       container energy-saving {
         description
           "Controls energy saving parameters of a component.";
         leaf enabled {
           type boolean;
           default "true";
           description
             "Controls whether the energy-saving
              of the component is enabled (when set to true)
              or disabled (set to false).";
         }
         leaf power-state {
           type identityref {
             base energy-saving-power-state;
           }
           description
             "The device energy saving operator state.";
         }
       }
       container inventory-component-ref {
         description
           "The reference of the component from which this
            termination point is abstracted.";
         uses component-ref;
       }
     }
   }
   <CODE ENDS>

5.1.  Security Considerations

   This section uses the template described in Section 3.7 of
   [I-D.ietf-netmod-rfc8407bis].

   The YANG modules specified in this document define a schema for data
   that is designed to be accessed via network management protocol such
   as NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   [RFC8446].

   The Network Configuration Access Control Model (NACM) [RFC8341]
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.

   There are several data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   to these data nodes without proper protection can have a negative
   effect on network operations.  Specifically, the following subtrees
   and data nodes have particular sensitivities/vulnerabilities:

   /em:energy-management/em:energy-saving-mode:  This leaf specifies the
      energy saving mode set globally on a device.

   /em:energy-saving/em:enable:  This leaf enable/disables energy saving
      state of specific component.

      Some of the readable data nodes in this YANG module may be
      considered sensitive or vulnerable in some network environments.
      It is thus important to control read access (e.g., via get, get-
      config, or notification) to these data nodes.  Specifically, the
      following subtrees and data nodes have particular sensitivities/
      vulnerabilities:

      'TBC':  ....

6.  IANA Considerations

6.1.  The "IETF XML" Registry

   This document requests IANA to register the following URI in the "ns"
   subregistry within the "IETF XML Registry" [RFC3688]:

      URI: urn:ietf:params:xml:ns:yang:ietf-energy-saving-mgt
      Registrant Contact: The IESG.
      XML: N/A, the requested URIs are XML namespaces.

6.2.  The "YANG Module Names" Registry

   This document requests IANA to register the following YANG module in
   the "YANG Module Names" registry [RFC6020] within the "YANG
   Parameters" registry group.

      name: ietf-energy-saving-management
      prefix: em
      namespace: urn:ietf:params:xml:ns:yang:ietf-energy-saving-mgt
      Maintained by IANA? N
      Reference: RFC XXXX

7.  References

7.1.  Normative References

   [I-D.ietf-ivy-network-inventory-yang]
              Yu, C., Belotti, S., Bouquier, J., Peruzzini, F., and P.
              Bedard, "A YANG Data Model for Network Inventory", Work in
              Progress, Internet-Draft, draft-ietf-ivy-network-
              inventory-yang-00, 5 December 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ivy-
              network-inventory-yang-00>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/rfc/rfc2119>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/rfc/rfc3688>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/rfc/rfc6020>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/rfc/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/rfc/rfc6242>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/rfc/rfc8040>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/rfc/rfc8341>.

   [RFC8345]  Clemm, A., Medved, J., Varga, R., Bahadur, N.,
              Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
              Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March
              2018, <https://www.rfc-editor.org/rfc/rfc8345>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/rfc/rfc8446>.

7.2.  Informative References

   [I-D.cx-opsawg-green-metrics]
              Clemm, A., Dong, L., Mirsky, G., Ciavaglia, L., Tantsura,
              J., Odini, M., Schooler, E., Rezaki, A., and C. Pignataro,
              "Green Networking Metrics", Work in Progress, Internet-
              Draft, draft-cx-opsawg-green-metrics-01, 15 December 2023,
              <https://datatracker.ietf.org/doc/html/draft-cx-opsawg-
              green-metrics-01>.

   [I-D.ietf-netmod-rfc8407bis]
              Boucadair, M. and Q. Wu, "Guidelines for Authors and
              Reviewers of Documents Containing YANG Data Models", Work
              in Progress, Internet-Draft, draft-ietf-netmod-rfc8407bis-
              08, 16 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-netmod-
              rfc8407bis-08>.

   [I-D.manral-bmwg-power-usage]
              Manral, V., Sharma, P., Banerjee, S., and Y. Ping,
              "Benchmarking Power usage of networking devices", Work in
              Progress, Internet-Draft, draft-manral-bmwg-power-usage-
              04, 12 March 2013, <https://datatracker.ietf.org/doc/html/
              draft-manral-bmwg-power-usage-04>.

   [RFC6988]  Quittek, J., Ed., Chandramouli, M., Winter, R., Dietz, T.,
              and B. Claise, "Requirements for Energy Management",
              RFC 6988, DOI 10.17487/RFC6988, September 2013,
              <https://www.rfc-editor.org/rfc/rfc6988>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/rfc/rfc8340>.

Acknowledgments

   This work has benefited from the discussions that occured during the
   Sustainable Networking Side Meeting in IETF#117 and the "e-impact"
   IAB workshop.  In particular, [I-D.cx-opsawg-green-metrics] assess
   several sustainability-related attributes such as power consumption,
   energy efficiency, and carbon footprint associated with a network,
   its equipment, and the services that are provided over it and suggest
   a set of metrics that provide network observability and can be used
   to optimize a network's "greenness".  [I-D.manral-bmwg-power-usage]
   provides suggestions for measuring power usage of live networks under
   different traffic loads and various switch router configuration
   settings.

Authors' Addresses

   Gen Chen
   Huawei
   China
   Email: chengen@huawei.com

   Qin Wu
   Huawei
   China
   Email: bill.wu@huawei.com

   Mohamed Boucadair
   Orange
   France
   Email: mohamed.boucadair@orange.com

   Oscar Gonzales de Dios
   Telefonica I+D
   Spain
   Email: oscar.gonzalezdedios@telefonica.com

   Carlos Pignataro
   North Carolina State University
   United States of America
   Email: cpignata@gmail.com, cmpignat@ncsu.edu