Internet-Draft | Energy Saving Management | October 2024 |
Chen, et al. | Expires 26 April 2025 | [Page] |
This document defines YANG modules for energy saving management at both device and network levels. Also, the document specifies a common module that is used independent of the model layer.¶
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 26 April 2025.¶
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.¶
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.¶
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 a '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 YANG modules for use in energy management within a network. The modules cover both network and device levels (Section 3.5.1 of [I-D.ietf-netmod-rfc8407bis]). The modules can be used, e.g., 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 network model augments the "ietf-network" module [RFC8345], while the inventory model augments the "ietf-network-inventory" module [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 monitor, 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.¶
The document leverages types defined in [RFC3418] and [RFC6933].¶
Note to the RFC Editor: This section is to be removed prior to publication.¶
This document contains placeholder values that need to be replaced with finalized values at the time of publication. This note summarizes all the substitutions that are needed.¶
Please apply the following replacements:¶
XXXX --> the RFC number assigned to this I-D¶
IIII --> the RFC number assigned to [I-D.ietf-ivy-network-inventory-yang]¶
2024-01-23 --> the actual date of the publication of this document¶
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 document uses the terms defined in [I-D.bclp-green-terminology] and [I-D.ietf-ivy-network-inventory-yang].¶
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 | [I-D.ietf-ivy-network-inventory-yang] |
yang | ietf-yang-types | [RFC6991] |
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-ni-energy-saving", 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.¶
"ietf-ntw-energy-saving" augments the node of abstract 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 or 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, or 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.¶
In order to ease reuse of various parameters independent of the module layer, this document also defines a common model: "ietf-energy-saving-common".¶
The structure of each module is provided in the following subsections.¶
Figure 1 shows the tree diagram of the YANG data model defined in Section 5.¶
The structure of the ESM Network Model is depicted in Figure 2.¶
The structure of the ESM Network Inventory Model is depicted in Figure 3.¶
The module imports types defined in [RFC6991].¶
<CODE BEGINS> file "[email protected]" module ietf-energy-saving-common { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-energy-saving-common"; prefix esm-common; import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Types"; } organization "IETF xxx Working Group."; contact "WG Web: <https://datatracker.ietf.org/wg/xxx/>; WG List: <mailto:[email protected]> Author: Gen Chen <mailto:[email protected]> Editor: Qin Wu <mailto:[email protected]> Editor: Mohamed Boucadair <mailto:[email protected]> Author: Carlos Pignataro <mailto:[email protected]>"; 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: YANG Data Models 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 not available and these components 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 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."; } } grouping energy-power-consumption-stats { 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."; } } } <CODE ENDS>¶
The module imports "ietf-network" [RFC8345] and "ietf-energy-saving-common".¶
<CODE BEGINS> file "[email protected]" module ietf-ntw-energy-saving { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ntw-energy-saving"; prefix esm-ntw; import ietf-energy-saving-common { prefix esm-common; reference "RFC XXXX: YANG Data Models for Energy Saving Management"; } import ietf-network { prefix nw; reference "RFC 8345: A YANG Data Model for Network Topologies"; } import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Types"; } import iana-hardware { prefix ianahw; reference "https://www.iana.org/assignments/iana-hardware/iana-hardware.xhtml"; } organization "IETF XXX Working Group."; contact "WG Web: <https://datatracker.ietf.org/wg/xxx/>; WG List: <mailto:[email protected]> Author: Gen Chen <mailto:[email protected]> Editor: Qin Wu <mailto:[email protected]> Editor: Mohamed Boucadair <mailto:[email protected]> Author: Carlos Pignataro <mailto:[email protected]>"; 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: YANG Data Models for Energy Saving Management"; } augment "/nw:networks/nw:network/nw:node" { if-feature "esm-common:energy-saving"; description "Energy monitoring data for network elements."; container energy-power-consumption { config false; description "Statistics data about energy and power monitoring."; uses esm-common:energy-power-consumption-stats; leaf start-time { type yang:date-and-time; description "The time (in hundredths of a second) since the network management portion of the system was last re-initialized. It corresponds to the sysUpTime MIB object. It specifies the start time of the energy measurement results collection."; reference "RFC 3418: Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)"; } } container energy-saving-modes { description "List of the energy saving mode."; uses esm-common:energy-saving-modes; } list component { key name; config false; description "List of components."; leaf name { type string; description "The name assigned to this component. This name is not required to be the same as entPhysicalName."; } leaf class { type identityref { base ianahw:hardware-class; } mandatory true; description "An indication of the general hardware type of the component."; reference "RFC 6933: Entity MIB (Version 4) - entPhysicalClass"; } container energy-monitoring { description "Energy monitoring data for components."; container energy-consumption { description "Statistics of component about energy monitoring."; uses esm-common: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 esm-common:energy-saving-power-state; } description "The device energy saving operator state."; } } } } } } <CODE ENDS>¶
The module imports "ietf-network-inventory" [I-D.ietf-ivy-network-inventory-yang] and "ietf-energy-saving-common".¶
<CODE BEGINS> file "[email protected]" module ietf-ni-energy-saving { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ni-energy-saving"; prefix esm-ni; import ietf-energy-saving-common { prefix esm-common; reference "RFC XXXX: YANG Data Models for Energy Saving Management"; } import ietf-network-inventory { prefix ni; reference "RFC IIII: A YANG Data Model for Network Inventory"; } organization "IETF xxx Working Group."; contact "WG Web: <https://datatracker.ietf.org/wg/xxx/>; WG List: <mailto:[email protected]> Author: Gen Chen <mailto:[email protected]> Editor: Qin Wu <mailto:[email protected]> Editor: Mohamed Boucadair <mailto:[email protected]> Author: Carlos Pignataro <mailto:[email protected]>"; 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: YANG Data Models for Energy Saving Management"; } grouping network-element-ref { description "Contains the information necessary to reference a network element."; leaf ne-ref { type leafref { path "/ni:network-inventory/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-inventory/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; } augment "/ni:network-inventory/ni:network-elements" + "/ni:network-element" { if-feature "esm-common: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 esm-common:energy-saving-modes; } } } augment "/ni:network-inventory/ni:network-elements" + "/ni:network-element/ni:components/ni:component" { if-feature "esm-common:energy-saving"; description "Energy management static data for component."; container power-parameters { config false; description "Power parameter monitoring."; uses esm-common:power-parameters; } } } <CODE ENDS>¶
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].These network management protocols are required to use a secure transport layer and mutual authentication, e.g., SSH [RFC6242] without the "none" authentication option, Transport Layer Security (TLS) [RFC8446] with mutual X.509 authentication, and HTTPS with HTTP authentication (Section 11 of [RFC9110]).¶
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:¶
This leaf specifies the energy saving mode set globally on a device.¶
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:¶
....¶
This document requests IANA to register the following URIs in the "ns" sub-registry within the "IETF XML Registry" [RFC3688]:¶
URI: urn:ietf:params:xml:ns:yang:ietf-energy-saving-common Registrant Contact: The IESG. XML: N/A, the requested URIs are XML namespaces. URI: urn:ietf:params:xml:ns:yang:ietf-ntw-energy-saving Registrant Contact: The IESG. XML: N/A, the requested URIs are XML namespaces. URI: urn:ietf:params:xml:ns:yang:ietf-ni-energy-saving Registrant Contact: The IESG. XML: N/A, the requested URIs are XML namespaces.¶
This document requests IANA to register the following YANG modules in the "YANG Module Names" registry [RFC6020] within the "YANG Parameters" registry group.¶
name: ietf-energy-saving-common prefix: esm-common namespace: urn:ietf:params:xml:ns:yang:ietf-energy-saving-common Maintained by IANA? N Reference: RFC XXXX name: ietf-ntw-energy-saving prefix: esm-ntw namespace: urn:ietf:params:xml:ns:yang:ietf-ntw-energy-saving Maintained by IANA? N Reference: RFC XXXX name: ietf-ni-energy-saving prefix: esm-ni namespace: urn:ietf:params:xml:ns:yang:ietf-ni-energy-saving Maintained by IANA? N Reference: RFC XXXX¶
This work has benefited from the discussions that occurred 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] and [I-D.cprjgf-bmwg-powerbench] provide suggestions for measuring power usage of live networks under different traffic loads and various switch router configuration settings.¶