<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     ipr="trust200902"
     category="std"
     docName="draft-claise-green-capability-discovery-00"
     submissionType="IETF"
     consensus="true"
     version="3"
     xml:lang="en">

  <front>
    <title abbrev="Power State Capability Discovery">Discovering the Power
    State Capabilities of Components</title>
    <seriesInfo name="Internet-Draft"
                value="draft-claise-green-capability-discovery-00"/>

    <author fullname="Benoit Claise" initials="B." surname="Claise">
      <organization>Everything OPS &amp; Arrcus</organization>
      <address>
        <email>benoit@everything-ops.net</email>
      </address>
    </author>

    <date year="2026" month="August" day="25"/>

    <area>Operations and Management</area>
    <workgroup>GREEN Working Group</workgroup>

    <keyword>energy efficiency</keyword>
    <keyword>power state</keyword>
    <keyword>capability discovery</keyword>
    <keyword>YANG</keyword>

    <abstract>
      <t>This document defines a YANG module that augments the system
      capabilities model of RFC 9196 to allow a network element to
      advertise, per hardware Component, the set of Power States that the
      Component supports together with a static characterization of each
      such state: the nominal Power the Component draws in that state.</t>

      <t>This capability model complements the operational Power and
      Energy data model defined in the GREEN Power and Energy YANG module,
      which reports the current Power State and the measured Power of a
      Component, but not which Power States are available or how much Power each
      draws. It is anchored to the hardware
      inventory of RFC 8348, reuses the Power State identities of the
      GREEN Power and Energy model, and, because it is static, may be
      provided at implementation time as YANG instance data per RFC 9195
      so that an Energy Management System can learn a platform's Power
      State capabilities before the equipment is deployed or even powered
      on.</t>
    </abstract>
  </front>

  <middle>

    <!-- ===================================================== -->
    <section anchor="intro" numbered="true">
      <name>Introduction</name>

      <t>Networks are provisioned for peak demand and might be
      over-provisioned some of the time. Reducing the energy consumed by
      the idle capacity requires the ability to place selected Components
      into a low-power (sleep) Power State when they are not needed, and to
      return them to full operation when demand returns. To determine which
      Components can be placed in a low-power state, and estimating the
      resulting Energy Saving, the Energy Management System, the controller,
      or the distributed path computation (depending on operational design)
      draws on two things about each Component:</t>

      <ol spacing="normal">
        <li>which Power States the Component actually supports</li>
        <li>where it is known, how much Power the Component draws in each
        supported state.</li>
      </ol>

      <t>The GREEN Power and Energy YANG module
      <xref target="I-D.ietf-green-power-and-energy-yang"/> models the
      operational side of this problem: for each Energy Object it
      reports the current administrative and operational Power State
      (<tt>power-state-admin</tt> / <tt>power-state-oper</tt>) and the
      measured instantaneous Power. It does not, however, describe which
      Power States a Component is capable of entering. GREEN reports a
      single Nameplate Power for the Component, but not the Power the
      Component draws in each supported Power State -- which is precisely
      what a Power Savings Potential calculation needs. That
      information is a Capability: it is essentially static, it is a
      property of the platform rather than of the running datastore, and it
      is useful before the device is even powered on.</t>

      <t>No common capability model exists today, so each consumer
      defines the pieces it needs. The Power Conserving Path Placement
      Strategy <xref target="I-D.many-teas-power-steering"/> and its
      IS-IS encoding <xref target="I-D.many-lsr-power-group"/> introduce
      their own "sleep-capable" indication and Power Savings Potential
      value, defined independently of the GREEN data model. This document
      defines a single capability model, discoverable through the
      standard system capabilities mechanism of <xref target="RFC9196"/>,
      from which those quantities can be derived -- for example, Power
      Savings Potential as the difference between the nominal Power of
      <tt>power-state-on</tt> and that of a low-power state -- rather than
      defined separately by
      each consumer.</t>

      <section anchor="req-lang" numbered="true">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
        "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
        NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
        "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
        "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
        are to be interpreted as described in BCP&#160;14
        <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>

      <section anchor="terminology" numbered="true">
        <name>Terminology</name>
        <t>This document makes use of the terms defined in
        <xref target="I-D.ietf-green-terminology"/>. Terms reused from that
        document are capitalized in this specification, including in
        particular Component, Device, Power, Power State, Power State Set,
        Nameplate Power, Energy Object, Energy Saving, and Energy Efficiency
        Capabilities.</t>
        <t>The term "Power Savings Potential (PSP)" is used as defined in
        <xref target="I-D.many-teas-power-steering"/>.</t>
      </section>
    </section>

    <!-- ===================================================== -->
    <section anchor="design" numbered="true">
      <name>Design Overview</name>

      <t>The design follows four principles.</t>

      <section anchor="d-separation" numbered="true">
        <name>Capability is Kept Separate from Operational State</name>
        <t>The set of supported Power States and their characterization is
        a Capability, not operational state. It is therefore carried in the system
        capabilities subtree of <xref target="RFC9196"/> rather than being
        mixed into the operational <tt>power</tt> data of
        <xref target="I-D.ietf-green-power-and-energy-yang"/>. Keeping the
        capability model separate from live status lets a management system learn a
        Component's Power States without querying a running device -- and,
        as <xref target="d-instance-data"/> describes, even from a
        vendor-supplied file before the Component is deployed.</t>
      </section>

      <section anchor="d-anchor" numbered="true">
        <name>Capability is Anchored to the Hardware Component</name>
        <t>A Power State is a property of a physical Component (a line card,
        a fabric, an optical module), which is exactly the entity that is
        placed into a low-power state. This document therefore anchors the
        capability to a Component in the hardware inventory
        <xref target="RFC8348"/>, using the per-node capability mechanism of
        <xref target="RFC9196"/>: the <tt>node-selector</tt> selects the
        <tt>/hardware/component</tt> entry to which the capability applies.</t>
        <t>The <tt>node-selector</tt> is the generic instance-identifier
        type defined in <xref target="RFC8341"/> and reused by
        <xref target="RFC9196"/>; although that type originates in the
        NACM module, it carries no access-control semantics and can
        address any data node. Because <tt>/hardware/component</tt> is
        operational state, the capability is advertised under the
        operational datastore <xref target="RFC8342"/>, as illustrated
        below:</t>
        <artwork><![CDATA[
system-capabilities
  datastore-capabilities [datastore = ietf-datastores:operational]
      // hardware components live in the operational datastore
    per-node-capabilities [node-selector =
        "/ietf-hardware:hardware/component[name='linecard-3']"]
      // node-selector: a generic RFC 8341 instance-identifier,
      // resolving here to an RFC 8348 hardware component
      power-state-capabilities { ... }   // added by this document
]]></artwork>
        <t>No new correlation identifier is required. The GREEN Power and
        Energy model already binds each of its <tt>energy-entry</tt>
        instances to a hardware Component through the
        <tt>source-component-id</tt> leafref to
        <tt>/hw:hardware/hw:component/hw:name</tt>. As a result the hardware
        inventory (RFC 8348), the capability model (this document), and
        the live operational state
        (<xref target="I-D.ietf-green-power-and-energy-yang"/>) all refer to
        one and the same Component name, and no change to the GREEN module
        is needed.</t>
      </section>

      <section anchor="d-identities" numbered="true">
        <name>Power State Names are Reused, Not Reinvented</name>
        <t>The supported Power States are identified by identities derived
        from the <tt>power-state</tt> base identity already defined in
        <xref target="I-D.ietf-green-power-and-energy-yang"/> (namely
        <tt>power-state-on</tt>, <tt>power-state-off</tt>, and
        <tt>power-state-sleep</tt>). Where a Component supports more than one
        low-power depth, additional identities are derived from
        <tt>power-state-sleep</tt>; such a collection of related states forms
        a Power State Set, and its member names <bcp14>SHOULD</bcp14> align
        with the Power State Sets described in
        <xref target="I-D.ietf-green-framework"/> rather than
        being independently invented, so that consumers can compare states
        across vendors.</t>
      </section>

      <section anchor="d-grouping" numbered="true">
        <name>The Characterization is a Reusable Grouping</name>
        <t>The per-state characterization is defined once, as the YANG
        grouping <tt>power-state-capability</tt> (<xref target="module"/>).
        The grouping is used both at the system-wide level and at the
        per-Component level of <xref target="RFC9196"/>, following the
        same two-level pattern as the companion
        <tt>ietf-notification-capabilities</tt> module of
        <xref target="RFC9196"/>.</t>
      </section>

      <section anchor="d-instance-data" numbered="true">
        <name>Capability MAY be Provided as Instance Data (RFC 9195)</name>
        <t>Because the capability is static and platform-specific, it does
        not have to be read from a running Device. It <bcp14>MAY</bcp14> be
        published by a vendor, or generated from a product data sheet, as a
        YANG instance data file per <xref target="RFC9195"/>. An Energy
        Management System or a planning tool can thereby learn the Power
        State capabilities of a platform -- which Components can sleep and
        how much Power they save -- at design or procurement time, before
        any equipment is deployed. When the Device
        is running, the same data <bcp14>MAY</bcp14> instead be read from
        the operational state datastore. The two sources use the identical
        schema defined here.</t>
      </section>
    </section>

    <!-- ===================================================== -->
    <section anchor="relationship" numbered="true">
      <name>Relationship to Other Work</name>

      <t>This document is deliberately narrow: it supplies the missing
      capability layer that three existing efforts each assume but none
      provides in a common form.</t>

      <t><xref target="I-D.ietf-green-power-and-energy-yang"/> reports, for
      a Component, the Power State it is in now and its measured Power.
      This document adds the static complement: the set of Power States
      that Component can enter and the nominal Power of each, keyed to the
      same hardware Component. A consumer needs both -- what the Component
      can do, from this document, and its live status, from
      the GREEN YANG module.</t>

      <t><xref target="I-D.many-teas-power-steering"/> and
      <xref target="I-D.many-lsr-power-group"/> define a Power Conserving
      Path Placement Strategy and its IS-IS encoding, which need to know
      which resources are sleep-capable and their Power Savings Potential.
      With this capability model both become derived facts rather than
      separately defined values: a Component is "sleep-capable" when it
      advertises a Power State derived from <tt>power-state-sleep</tt>, and
      its PSP for a given low-power state is simply the difference between
      the <tt>nominal-power</tt> of <tt>power-state-on</tt> and the
      <tt>nominal-power</tt> of that state. Those documents can then
      reference a single capability definition instead of carrying their
      own.</t>

      <t>This capability model does not replace those mechanisms, and it
      does not reduce what they must distribute. The dynamic,
      load-dependent quantities they carry -- for example, the Power
      Savings Potential actually available under the current traffic, or
      the sleeping bandwidth of a link -- change with network conditions
      and remain theirs to distribute, whether in the IGP or via
      telemetry. What this document changes is narrower: the static
      foundation those quantities build on -- which Power States a
      Component supports, and the rated Power of each -- is defined once
      here, rather than re-specified, with its own units and semantics,
      inside each consumer.</t>
    </section>

    <!-- ===================================================== -->
    <section anchor="model" numbered="true">
      <name>The Power State Capabilities Model</name>

      <t>This module advertises the set of supported Power States, not the
      permitted transitions between them; transition constraints are out
      of scope.</t>

      <section anchor="tree" numbered="true">
        <name>Tree Structure</name>
        <t>The following tree diagram uses the notation defined in
        <xref target="RFC8340"/>.</t>
        <sourcecode type="yangtree"><![CDATA[
module: ietf-power-state-capabilities

  augment /sysc:system-capabilities:
    +--ro power-state-capabilities
       +--ro unit-multiplier?        identityref
       +--ro supported-power-state* [power-state]
          +--ro power-state      identityref
          +--ro nominal-power?   uint32
          +--ro max-power?       uint32
  augment /sysc:system-capabilities
            /sysc:datastore-capabilities
            /sysc:per-node-capabilities:
    +--ro power-state-capabilities
       +--ro unit-multiplier?        identityref
       +--ro supported-power-state* [power-state]
          +--ro power-state      identityref
          +--ro nominal-power?   uint32
          +--ro max-power?       uint32
]]></sourcecode>
      </section>

      <section anchor="module" numbered="true">
        <name>YANG Module</name>
        <t>This module imports the system capabilities module of
        <xref target="RFC9196"/> and reuses the <tt>power-state</tt> and
        <tt>unit-multiplier</tt> identities of
        <xref target="I-D.ietf-green-power-and-energy-yang"/>.</t>

        <sourcecode type="yang" name="ietf-power-state-capabilities@2026-08-25.yang"><![CDATA[
module ietf-power-state-capabilities {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-power-state-capabilities";
  prefix pscap;

  import ietf-system-capabilities {
    prefix sysc;
    reference
      "RFC 9196: YANG Modules Describing Capabilities for Systems
       and Datastore Update Notifications";
  }
  import ietf-power-and-energy {
    prefix eo;
    reference
      "I-D.ietf-green-power-and-energy-yang: A YANG Data Model for
       Power and Energy Monitoring and Control";
  }

  organization
    "IETF GREEN (Getting Ready for Energy-Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Author:   Benoit Claise <mailto:benoit@everything-ops.net>";
  description
    "This module augments the system capabilities model defined in
     RFC 9196 to allow a server to advertise, per hardware Component,
     the set of Power States that the Component supports together
     with a static characterization of each such state (the
     nominal Power the Component draws in that state).

     The capability is anchored, via the RFC 9196 per-node capability
     mechanism, to a Component of the hardware inventory defined in
     RFC 8348. It reuses the 'power-state' and 'unit-multiplier'
     identities defined in ietf-power-and-energy.

     Copyright (c) 2026 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.";

  revision 2026-08-25 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Discovering the Power State Capabilities of
       Components";
  }

  grouping power-state-capability {
    description
      "Static characterization of the Power States that a Component
       supports. This grouping is reusable: it is used both at the
       system-wide level and at the per-Component level of the
       RFC 9196 capabilities model.";

    leaf unit-multiplier {
      type identityref {
        base eo:unit-multiplier;
      }
      default "eo:multiplier-units";
      description
        "Scale factor applied to every Power value ('nominal-power'
         and 'max-power') reported in this grouping. This reuses the
         'unit-multiplier' identity of ietf-power-and-energy. When
         not explicitly specified, the default of
         'eo:multiplier-units' (10^0 = 1) applies, meaning Power
         values are expressed in Watts.";
    }

    list supported-power-state {
      key "power-state";
      description
        "The set of Power States supported by the Component, with one
         entry per supported state.";

      leaf power-state {
        type identityref {
          base eo:power-state;
        }
        description
          "A Power State that the Component supports,
           identified by an identity derived from the
           'power-state' base identity of ietf-power-and-energy
           (for example 'power-state-on', 'power-state-off', or
           'power-state-sleep'). Additional low-power depths are
           represented by further identities derived from
           'power-state-sleep'. The abstract identities
           'power-state-admin' and 'power-state-oper' MUST NOT
           be used here.";
      }

      leaf nominal-power {
        type uint32;
        units "Watts";
        description
          "The nominal Power drawn by the Component while it
           is in this Power State, scaled by 'unit-multiplier'.
           The Power Savings Potential of a low-power state is
           the difference between the 'nominal-power' of
           'power-state-on' and the 'nominal-power' of that
           low-power state.";
      }

      leaf max-power {
        type uint32;
        units "Watts";
        description
          "The maximum Power that the Component may draw while
           in this Power State, scaled by 'unit-multiplier'. This
           is the per-Power-State counterpart of the Component's
           Nameplate Power: a rated ceiling for this particular
           state.";
      }
    }
  }

  augment "/sysc:system-capabilities" {
    description
      "System-wide (Device-level) Power State capabilities that apply
       unless overridden by a per-Component entry.";
    container power-state-capabilities {
      description
        "Default Power State capabilities for the whole system.";
      uses power-state-capability;
    }
  }

  augment "/sysc:system-capabilities"
        + "/sysc:datastore-capabilities"
        + "/sysc:per-node-capabilities" {
    description
      "Per-Component Power State capabilities. The 'node-selector' of
       the enclosing RFC 9196 'per-node-capabilities' entry selects
       the Component to which these capabilities apply, typically a
       '/hw:hardware/hw:component' entry of RFC 8348.";
    container power-state-capabilities {
      description
        "Power State capabilities of the selected Component(s).";
      uses power-state-capability;
    }
  }
}
]]></sourcecode>
      </section>
    </section>

    <!-- ===================================================== -->
    <section anchor="op" numbered="true">
      <name>Operational Considerations</name>
      <t>The capability data defined by this module is essentially static
      for a given hardware configuration. A server that already implements
      the GREEN Power and Energy model
      <xref target="I-D.ietf-green-power-and-energy-yang"/> -- and hence the
      hardware inventory of <xref target="RFC8348"/> on which it depends --
      can expose these capabilities as operational state, or a management
      system can obtain them out of band as instance data
      (<xref target="d-instance-data"/>).</t>

      <t>The <tt>nominal-power</tt> and <tt>max-power</tt> values are
      optional. A Component MAY advertise the Power States it supports
      with no Power value; a consumer then learns what the Component can
      do, but not what each state costs.</t>

      <t>Where present, these are static, rated figures -- the Power a
      Component is expected to draw in a Power State, in the spirit of
      Nameplate Power. They are an approximation: the Power actually
      drawn, especially in <tt>power-state-on</tt>, depends on the offered
      load, the operating temperature, and other environmental conditions,
      and is therefore network-specific and time-varying. An operator
      <bcp14>MUST</bcp14> treat <tt>nominal-power</tt> as a planning
      baseline, not as a measurement.</t>

      <t>These values are operational state (<tt>config false</tt>), not
      configuration: a Component reports them. Where a rated figure is
      unavailable, or too coarse for a given purpose, a more precise value
      can be obtained by measurement -- an Energy Management System can
      observe the measured <tt>instantaneous-power</tt> of
      <xref target="I-D.ietf-green-power-and-energy-yang"/> while the
      Component is in the corresponding Power State, and use it to supply
      or refine the advertised value.</t>

      <t>The dynamic, load-dependent Power Savings Potential that a
      real-time path placement acts upon is out of scope for this static
      capability model. In a distributed path-computation architecture it
      is derived from live conditions and flooded by the IGP (e.g.,
      <xref target="I-D.many-teas-power-steering"/> /
      <xref target="I-D.many-lsr-power-group"/>); in a centralized
      architecture a controller can instead collect it via telemetry. This
      document supplies the stable capability baseline on which those
      mechanisms build.</t>

      <t>A consumer <bcp14>MUST NOT</bcp14> assume that a supported
      low-power Power State may be entered at any given moment; that is a
      runtime decision, taken by the consumer's policy and configured
      through the control side of the GREEN model (e.g., a write to
      <tt>power-state-admin</tt>, which the Device may accept or reject).
      It is out of scope here.</t>
    </section>

    <!-- ===================================================== -->
    <section anchor="security" numbered="true">
      <name>Security Considerations</name>

      <t>This section is modeled after the template described in
      Section 3.7.1 of <xref target="RFC9907"/>.</t>

      <t>The "ietf-power-state-capabilities" YANG module defines a data
      model that is designed to be accessed via YANG-based management
      protocols, such as the Network Configuration Protocol (NETCONF)
      <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
      These YANG-based management protocols (1) have to use a secure
      transport layer (e.g., Secure Shell (SSH) <xref target="RFC4252"/>,
      TLS <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and
      (2) have to use mutual authentication.</t>

      <t>The Network Configuration Access Control Model (NACM)
      <xref target="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.</t>

      <t>All data nodes defined in this YANG module are read-only
      ("config false") operational state, which may equivalently be
      provided as instance data (<xref target="d-instance-data"/>). The
      module defines no writable data nodes, no RPC or action operations,
      and no notifications.</t>

      <t>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
      "power-state-capabilities" subtree -- the set of Power States a
      Component supports and the nominal Power of each -- reveals which
      Components of a Device can be placed into a low-power state and how
      much Power that would save. An attacker with read access to this
      information can identify the resources whose repeated forced wake-up
      would cause the greatest energy or thrashing amplification, or whose
      sleeping would most usefully be prevented to degrade capacity. This
      is the same exposure noted for the corresponding routing
      advertisements in <xref target="I-D.many-lsr-power-group"/>. Read
      access to this subtree <bcp14>SHOULD</bcp14> be restricted, and,
      when the capability is distributed as a YANG instance data file
      <xref target="RFC9195"/>, the file <bcp14>SHOULD</bcp14> be handled
      with the same care as other platform capability inventories.</t>
    </section>

    <!-- ===================================================== -->
    <section anchor="iana" numbered="true">
      <name>IANA Considerations</name>

      <t>This document requests IANA to register the following URI in the
      "ns" subregistry of the "IETF XML Registry"
      <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-power-state-capabilities
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>

      <t>This document requests IANA to register the following YANG module
      in the "YANG Module Names" subregistry
      <xref target="RFC6020"/> within the "YANG Parameters" registry:</t>
      <artwork><![CDATA[
   Name:       ietf-power-state-capabilities
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-power-state-capabilities
   Prefix:     pscap
   Reference:  RFC XXXX
]]></artwork>
    </section>

    <!-- ===================================================== -->
    <section anchor="ack" numbered="true">
      <name>Acknowledgments</name>
      <t>This work builds directly on the GREEN Power and Energy YANG model
      and terminology, and on the system capabilities framework of
      RFC 9196.</t>
    </section>

  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9196.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8348.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-green-power-and-energy-yang.xml"/>
    </references>

    <references>
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9195.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9907.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4252.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8342.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7951.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-green-terminology.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-green-framework.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.many-teas-power-steering.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.many-lsr-power-group.xml"/>
    </references>

    <!-- ===================================================== -->
    <section anchor="example" numbered="true">
      <name>Example</name>
      <t>The following JSON <xref target="RFC7951"/> instance data shows the
      Power State capabilities of a single line card, "linecard-3", reported
      as a per-Component capability against the operational state datastore.
      The line card supports two Power States: fully on, drawing 200 Watts,
      and asleep, drawing 15 Watts. The same
      encoding, wrapped in an <tt>instance-data-set</tt> per
      <xref target="RFC9195"/>, could be shipped by the vendor before
      deployment.</t>

      <sourcecode type="json"><![CDATA[
{
  "ietf-system-capabilities:system-capabilities": {
    "datastore-capabilities": [{
      "datastore": "ietf-datastores:operational",
      "per-node-capabilities": [{
        "node-selector":
          "/ietf-hardware:hardware/component[name='linecard-3']",
        "ietf-power-state-capabilities:power-state-capabilities": {
          "supported-power-state": [{
            "power-state": "ietf-power-and-energy:power-state-on",
            "nominal-power": 200
          },{
            "power-state":
              "ietf-power-and-energy:power-state-sleep",
            "nominal-power": 15
          }]
        }
      }]
    }]
  }
}
]]></sourcecode>
      <t>From these values, the Power Savings Potential of the sleep state
      (<tt>power-state-sleep</tt>) is derived by subtraction:
      200 - 15 = 185 Watts, consistent with the Power Savings Potential
      convention of <xref target="I-D.many-teas-power-steering"/>. The
      current Power State and measured Power of the same line card are
      reported separately by
      <xref target="I-D.ietf-green-power-and-energy-yang"/>, against the
      same Component name.</t>
    </section>

  </back>
</rfc>
