<?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.5.26 (Ruby 2.6.10) -->


<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC8348 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8348.xml">
<!ENTITY I-D.wzwb-opsawg-network-inventory-management SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.wzwb-opsawg-network-inventory-management.xml">
<!ENTITY I-D.ietf-ccamp-network-inventory-yang SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ccamp-network-inventory-yang.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>


<rfc ipr="trust200902" docName="draft-li-ivy-power-00" category="std" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="YANG Power Management">A YANG model for Power Management</title>

    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>Juniper Networks</organization>
      <address>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>Juniper Networks</organization>
      <address>
        <email>rbonica@juniper.net</email>
      </address>
    </author>

    <date year="2023" month="September" day="26"/>

    
    <workgroup>IVY Working Group</workgroup>
    

    <abstract>


<t>Network sustainability is a key issue facing the industry. Networks
consume significant amounts of power at a time when the cost of power
is rising and sensitivity about sustainability is very high. As an
industry, we need to find ways to optimize the power efficiency of our
networks both at a micro and macro level. We have observed that
traffic levels fluctuate and when traffic ebbs there is much more
capacity than is needed. Powering off portions of network elements
could save a significant amount of power, but to scale and be
practical, this must be automated.</t>

<t>The natural mechanism for enabling automation would be a Yet Another
Next Generation (YANG) interface, so this document proposes a YANG
model for power management.</t>



    </abstract>



  </front>

  <middle>


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

<t>Network sustainability is a key issue facing the industry. Networks
consume significant amounts of power at a time when the cost of power
is rising and sensitivity about sustainability is very high. As an
industry, we need to find ways to optimize the power efficiency of our
networks both at a micro and macro level. We have observed that
traffic levels fluctuate and when traffic ebbs there is much more
capacity than is needed. Powering off portions of network elements
could save a significant amount of power, but to scale and be
practical, this must be automated.</t>

<t>The natural mechanism for enabling automation would be a Yet Another
Next Generation (YANG) interface, so this document proposes a YANG
model for power management.</t>

<t><xref target="RFC8348"/> already provides a model for server hardware management,
but does not naturally extend to routers and other network
elements. That gap is currently being addressed by
<xref target="I-D.wzwb-opsawg-network-inventory-management"/> and
<xref target="I-D.ietf-ccamp-network-inventory-yang"/>.  This document extends the
work presented there to include power management.</t>

<t>This initial draft only provides a tree representation. When there is
rough consensus on the tree represetnation, the details of the model
will be fleshed out.</t>

<section anchor="REQ-lang" title="Requirement 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 BCP14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>

</section>
</section>
<section anchor="power-management-elements" title="Power Management Elements">

<t>The models mentioned above already model a router or network
element as a set of components. The details of those components are
left to the specific implementation and can be at any level of
specificity. Thanks to this flexibility, it is necessary and
sufficient that we characterize power management relative to
components.</t>

<t>The elements defined below allow management entities to understand how
much power each component is using and whether the component can be
placed into a ‘power-save’ mode where it would consume less
power. Another element allows the management plane to put the
component into power-save mode.</t>

<section anchor="power-consumption" title="Power consumption">

<t><list style="symbols">
  <t>Name: used-power</t>
  <t>Node Type: leaf</t>
  <t>Data Type: uint32</t>
  <t>Description: Power drawn by the component, in watts.</t>
</list></t>

<t>This node is applied to components in the model. If an accurate
dynamic power measurement is not available, then static power
estimates are acceptable.</t>

</section>
<section anchor="power-control-capability" title="Power control capability">

<t><list style="symbols">
  <t>Name: power-save-capable</t>
  <t>Node Type: leaf</t>
  <t>Data Type: boolean</t>
  <t>Description: True if the component can be put into power-save mode.</t>
</list></t>

</section>
<section anchor="power-control" title="Power control">

<t><list style="symbols">
  <t>Node: power-save</t>
  <t>Node Type: leaf</t>
  <t>Data Type: Boolean</t>
  <t>Description: True if the component is in power-save mode.</t>
  <t>Access: Read/write</t>
</list></t>

</section>
</section>
<section anchor="functional-dependencies" title="Functional Dependencies">

<t>Most inventory models have a hierarchy of components.  This 
hierarchy reflects the physical structure of the system (e.g., 
a line card can physically contain a port).</t>

<t>With regard to physical containment, components maintain a one-to-many
relationship. That is, Component A can contain many other components, including
Component B. However, component B can be contain by only one component 
(i.e., Component A.)</t>

<t>However, legacy inventory models do not reflect functional
dependencies.  Specifically, they do not indicate which components
obtain services from, and therefore depend, components other than
their container. Because funtional dependencies are relavant to power
management, they are included in the proposed model.</t>

<t>With regard to functional dependencies, components maintain a many-to-many
relationship. That is, a component can reuire on many components and be
required by many other components.</t>

<t>Functional dependencies may be updated dynamically.</t>

<section anchor="required-components" title="Required Components">

<t>This container holds a list of components that the component uses.
For example, a linecard uses a set of switch cards, so the switch
cards would be required components. If the bandwidth used by the
linecard changes, then the set of switch cards that are required may
change dynamically.</t>

<t><list style="symbols">
  <t>Node: required-components</t>
  <t>Node Type: list</t>
  <t>Description: A list of other components that are required for this component to operate.</t>
</list></t>

</section>
<section anchor="dependent-components" title="Dependent components">

<t>This container holds a list of components that are used by this
component. For example, a switch card is used by a set of line cards,
so the line cards would be dependent components. This list can also
change dynamically.</t>

<t><list style="symbols">
  <t>Node: dependent-components</t>
  <t>Node Type: list</t>
  <t>Description: A list of other components that are used by this component.</t>
</list></t>

</section>
</section>
<section anchor="tree-representation" title="Tree Representation">

<figure><artwork><![CDATA[
 +--ro component* [uuid]
    +--ro uuid                          yang:uuid
    +--ro used-power?                   uint32
    +--ro power-save-capable?           boolean
    +--rw power-save?                   boolean
    +--ro required-components*          -> ../uuid
    +--ro dependent-components*         -> ../uuid
]]></artwork></figure>

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

<t>YANG provides information about and configuration capabilities to the
network management plane. Other mechanisms already exist that help
secure these interactions. This document extends the scope of what can
be controlled by the management plane, but creates no new access paths.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document makes no requests for IANA.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8348;
&I-D.wzwb-opsawg-network-inventory-management;
&I-D.ietf-ccamp-network-inventory-yang;
&RFC2119;
&RFC8174;


    </references>




  </back>

<!-- ##markdown-source:
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

-->

</rfc>

