<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-swepcarl-green-controller-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="grecon">GREEN Controller YANG</title>
    <seriesInfo name="Internet-Draft" value="draft-swepcarl-green-controller-yang-00"/>
    <author fullname="Jan Lindblad">
      <organization>All For Eco</organization>
      <address>
        <email>jan.lindblad@for.eco</email>
      </address>
    </author>
    <date year="2026" month="October" day="16"/>
    <area>Operations and Management</area>
    <workgroup>Getting Ready for Energy-Efficient Networking</workgroup>
    <keyword>green</keyword>
    <keyword>controller</keyword>
    <keyword>energy</keyword>
    <keyword>YANG</keyword>
    <keyword>telemetry</keyword>
    <keyword>collection</keyword>
    <keyword>aggregation</keyword>
    <abstract>
      <?line 43?>

<t>TODO Abstract</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://janlindblad.github.io/draft-green-controller/draft-swepcarl-green-controller-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-swepcarl-green-controller-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Getting Ready for Energy-Efficient Networking Working Group mailing list (<eref target="mailto:green@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/green/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/green/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/janlindblad/draft-green-controller"/>.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the GREEN architecture, GREEN Controllers are responsible for collecting,
aggregating, transforming telemetry data concerning energy consumption, as
well as storing or forwarding the result. This document describes the YANG
modules used to configure and monitor the collection.</t>
      <t>The GREEN Controllers need this configuration to perform their function, but
this information is also the basis for auditors verifying where the data is
coming from, how it has been computed and that it is correct.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="controller-configuration">
      <name>Controller Configuration</name>
      <t>This section describes how to configure the Energy Controller so that
it knows what devices to collect data from, and how. How to filter,
transform and aggregate the collected data. Where to deliver any output
streams, if any, and whether do populate a power and energy overview
of the network.</t>
      <section anchor="collection">
        <name>Collection</name>
        <t>The GREEN Controller needs to ensure data is collected from the devices under its control, but the actual data does not necessarily need to pass through the Controller.</t>
        <t>This YANG module enumerates the devices it collects data from, and also specifies which collection method it uses for each device. A few collection methods are specified in this module, but augmentations with additional mechanisms are expected.</t>
        <t>TBD</t>
      </section>
      <section anchor="filtering-and-transformation">
        <name>Filtering and Transformation</name>
        <t>## Aggregation</t>
        <t>Averages, sums, peaks, … TBD</t>
      </section>
      <section anchor="delivery">
        <name>Delivery</name>
      </section>
    </section>
    <section anchor="controller-energy-network-state">
      <name>Controller Energy Network State</name>
      <t>This section describes how to the Energy Controller renders an energy
network overview of the devices and their major components that clients
may query.</t>
      <section anchor="yang-tree">
        <name>YANG Tree</name>
        <t>The current working assumption is that the energy controller superimposes the energy network view on top of an IVY inventory topology. The IVY components are augmented with information about the component's instantaneous-power, total-energy-consumed etc. Each component may also declare its energy relations. The relations describe which other components does this component powers or meters, and what it is powered-by.</t>
        <figure>
          <name>YANG tree diagram of the energy network.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-power-energy-network

  augment /nw:networks/nw:network/nw:network-types:
    +--rw energy-network!
  augment /nw:networks/nw:network/nw:node:
    +--rw energy-node-attributes!
       +--rw references
       |  +--rw ref-string?    string
       |  +--rw ref-ietf-hw?   string
       +--rw power
       |  +--rw instantaneous-power?    int64
       |  +--rw nameplate-power?        uint32
       |  +--rw data-source-accuracy?   identityref
       |  +--rw power-factor?           power-factor
       |  +--rw measurement-local?      boolean
       +--rw energy
       |  +--rw total-energy-consumed?    uint64
       |  +--rw total-energy-delivered?   uint64
       |  +--rw data-source-accuracy?     identityref
       |  +--rw measurement-local?        boolean
       |  +--rw certifications*           identityref
       +--rw component* [component-id]
          +--rw component-id    string
          +--rw references
          |  +--rw ref-string?    string
          |  +--rw ref-ietf-hw?   string
          +--rw power
          |  +--rw instantaneous-power?    int64
          |  +--rw nameplate-power?        uint32
          |  +--rw data-source-accuracy?   identityref
          |  +--rw power-factor?           power-factor
          |  +--rw measurement-local?      boolean
          +--rw energy
          |  +--rw total-energy-consumed?    uint64
          |  +--rw total-energy-delivered?   uint64
          |  +--rw data-source-accuracy?     identityref
          |  +--rw measurement-local?        boolean
          |  +--rw certifications*           identityref
          +--rw relationship* [type peer-node]
             +--rw type              identityref
             +--rw peer-node         -> ../../../../../nw:node/node-id
             +--rw peer-component* [peer-component]
                +--rw peer-component    -> ../../../../../../nw:node[nw:node-id=current()/../../peer-node]/pen:energy-node-attributes/component/component-id
                +--rw details?          string
  augment /nwi:network-inventory/nwi:network-elements/nwi:network-element/nwi:components/nwi:component:
    +--ro power
    |  +--ro instantaneous-power?    int64
    |  +--ro nameplate-power?        uint32
    |  +--ro data-source-accuracy?   identityref
    |  +--ro power-factor?           power-factor
    |  +--ro measurement-local?      boolean
    +--ro energy
       +--ro total-energy-consumed?    uint64
       +--ro total-energy-delivered?   uint64
       +--ro data-source-accuracy?     identityref
       +--ro measurement-local?        boolean
       +--ro certifications*           identityref

  grouping references:
    +-- references
       +-- ref-string?    string
       +-- ref-ietf-hw?   string
  grouping relationship-set:
    +-- relationship* [type peer-node]
       +-- type              identityref
       +-- peer-node         -> ../../../../../nw:node/node-id
       +-- peer-component* [peer-component]
          +-- peer-component    -> ../../../../../../nw:node[nw:node-id=current()/../../peer-node]/pen:energy-node-attributes/component/component-id
          +-- details?          string
]]></sourcecode>
        </figure>
      </section>
      <section anchor="example">
        <name>Example</name>
        <t>In order to make this YANG module a little more digestible, here follows a simple YANG instance data example of what a small energy network might look like.</t>
        <t>In this example, we have three Routers in a triangle formation. Each router has either an IP Phone or a Wifi Access Point attached to one of its line cards, which also deliver power to this device.</t>
        <t>The example's first section shows a classic network underlay called "green-underlay-1". It lists the nodes in the network and describes how their data paths are connected.</t>
        <t>The second section is more interesting from an energy point of view. It shows the same network seen as an energy network, "green-energy-1".</t>
        <t>For each node in the network we see its node-id used by the controller, references to what the node is called in some other contexts, and the current power and energy data. Then a list of components living on this node.</t>
        <t>For each component, there is a component-id and references to alternate names of this node in other contexts. Then power and energy data for this component, and the energy relationships this component has with other components, such as powered-by or metering.</t>
        <sourcecode type="json" markers="true" name="three-router-example@2026-09-26.json"><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set": {
    "name": "three-router-example",
    "content-schema": {
      "module": [
        "ietf-network@2018-02-26",
        "ietf-network-topology@2018-02-26",
        "ietf-network-inventory-topology@2026-09-11",
        "ietf-network-inventory@2026-05-27",
        "ietf-power-energy-base@2026-09-26",
        "ietf-power-energy-network@2026-09-26"
      ]
    },
    "revision": [
      {
        "date": "2026-09-26",
        "description": "Initial version"
      }
    ],
    "description": [
      "Three-router example with separate underlay and energy networks"
    ],
    "content-data": {
      "ietf-network:networks": {
        "network": [
          {
            "network-id": "green-underlay-1",
            "network-types": {
              "ietf-network-inventory-topology:inventory-topology": {}
            },
            "node": [
              {
                "node-id": "r1"
              },
              {
                "node-id": "r2"
              },
              {
                "node-id": "r3"
              },
              {
                "node-id": "phone-a"
              },
              {
                "node-id": "phone-b"
              },
              {
                "node-id": "ap-c"
              }
            ],
            "ietf-network-topology:link": [
              {
                "link-id": "r1-r2",
                "source": {
                  "source-node": "r1"
                },
                "destination": {
                  "dest-node": "r2"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:fiber"
                }
              },
              {
                "link-id": "r2-r3",
                "source": {
                  "source-node": "r2"
                },
                "destination": {
                  "dest-node": "r3"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:fiber"
                }
              },
              {
                "link-id": "r3-r1",
                "source": {
                  "source-node": "r3"
                },
                "destination": {
                  "dest-node": "r1"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:fiber"
                }
              },
              {
                "link-id": "r1-phone-a",
                "source": {
                  "source-node": "r1"
                },
                "destination": {
                  "dest-node": "phone-a"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:copper"
                }
              },
              {
                "link-id": "r2-phone-b",
                "source": {
                  "source-node": "r2"
                },
                "destination": {
                  "dest-node": "phone-b"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:copper"
                }
              },
              {
                "link-id": "r3-ap-c",
                "source": {
                  "source-node": "r3"
                },
                "destination": {
                  "dest-node": "ap-c"
                },
                "ietf-network-inventory-topology:inventory-mapping-attributes": {
                  "link-type": "ietf-network-inventory-topology:copper"
                }
              }
            ]
          },
          {
            "network-id": "green-energy-1",
            "network-types": {
              "ietf-power-energy-network:energy-network": {}
            },
            "node": [
              {
                "node-id": "r1",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "router-1",
                    "ref-ietf-hw": "r1-chassis"
                  },
                  "power": {
                    "instantaneous-power": 165000,
                    "nameplate-power": 450,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "energy": {
                    "total-energy-consumed": 2840,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "component": [
                    {
                      "component-id": "chassis",
                      "references": {
                        "ref-ietf-hw": "r1-chassis"
                      },
                      "power": {
                        "instantaneous-power": 145000,
                        "nameplate-power": 350,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                      },
                      "energy": {
                        "total-energy-consumed": 2200,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "r1",
                          "peer-component": [
                            {
                              "peer-component": "lc1",
                              "details": "backplane feed"
                            },
                            {
                              "peer-component": "lc2",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc1",
                      "references": {
                        "ref-ietf-hw": "r1-lc1"
                      },
                      "power": {
                        "instantaneous-power": 8000,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r1",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        },
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "phone-a",
                          "peer-component": [
                            {
                              "peer-component": "phone-main",
                              "details": "PoE to phone-a"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc2",
                      "references": {
                        "ref-ietf-hw": "r1-lc2"
                      },
                      "power": {
                        "instantaneous-power": 7500,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r1",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "psu1",
                      "references": {
                        "ref-ietf-hw": "r1-psu1"
                      },
                      "power": {
                        "instantaneous-power": 6200,
                        "nameplate-power": 30,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      }
                    }
                  ]
                }
              },
              {
                "node-id": "r2",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "router-2",
                    "ref-ietf-hw": "r2-chassis"
                  },
                  "power": {
                    "instantaneous-power": 162000,
                    "nameplate-power": 450,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "energy": {
                    "total-energy-consumed": 2790,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "component": [
                    {
                      "component-id": "chassis",
                      "references": {
                        "ref-ietf-hw": "r2-chassis"
                      },
                      "power": {
                        "instantaneous-power": 143000,
                        "nameplate-power": 350,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "r2",
                          "peer-component": [
                            {
                              "peer-component": "lc1",
                              "details": "backplane feed"
                            },
                            {
                              "peer-component": "lc2",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc1",
                      "references": {
                        "ref-ietf-hw": "r2-lc1"
                      },
                      "power": {
                        "instantaneous-power": 7800,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r2",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        },
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "phone-b",
                          "peer-component": [
                            {
                              "peer-component": "phone-main",
                              "details": "PoE to phone-b"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc2",
                      "references": {
                        "ref-ietf-hw": "r2-lc2"
                      },
                      "power": {
                        "instantaneous-power": 7300,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r2",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "psu1",
                      "references": {
                        "ref-ietf-hw": "r2-psu1"
                      },
                      "power": {
                        "instantaneous-power": 6100,
                        "nameplate-power": 30,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      }
                    }
                  ]
                }
              },
              {
                "node-id": "r3",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "router-3",
                    "ref-ietf-hw": "r3-chassis"
                  },
                  "power": {
                    "instantaneous-power": 168000,
                    "nameplate-power": 450,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "energy": {
                    "total-energy-consumed": 2905,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                  },
                  "component": [
                    {
                      "component-id": "chassis",
                      "references": {
                        "ref-ietf-hw": "r3-chassis"
                      },
                      "power": {
                        "instantaneous-power": 147000,
                        "nameplate-power": 350,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-gold-10"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "r3",
                          "peer-component": [
                            {
                              "peer-component": "lc1",
                              "details": "backplane feed"
                            },
                            {
                              "peer-component": "lc2",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc1",
                      "references": {
                        "ref-ietf-hw": "r3-lc1"
                      },
                      "power": {
                        "instantaneous-power": 8100,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r3",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "lc2",
                      "references": {
                        "ref-ietf-hw": "r3-lc2"
                      },
                      "power": {
                        "instantaneous-power": 7600,
                        "nameplate-power": 50,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r3",
                          "peer-component": [
                            {
                              "peer-component": "chassis",
                              "details": "backplane feed"
                            }
                          ]
                        },
                        {
                          "type": "ietf-power-energy-base:powering",
                          "peer-node": "ap-c",
                          "peer-component": [
                            {
                              "peer-component": "ap-main",
                              "details": "PoE to access point"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "component-id": "psu1",
                      "references": {
                        "ref-ietf-hw": "r3-psu1"
                      },
                      "power": {
                        "instantaneous-power": 6300,
                        "nameplate-power": 30,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      }
                    }
                  ]
                }
              },
              {
                "node-id": "phone-a",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "1234"
                  },
                  "power": {
                    "instantaneous-power": 4800,
                    "nameplate-power": 15,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "energy": {
                    "total-energy-consumed": 120,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "component": [
                    {
                      "component-id": "phone-main",
                      "references": {
                        "ref-string": "1234"
                      },
                      "power": {
                        "instantaneous-power": 4800,
                        "nameplate-power": 15,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r1",
                          "peer-component": [
                            {
                              "peer-component": "lc1",
                              "details": "PoE source on router r1 line card"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "node-id": "phone-b",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "5678"
                  },
                  "power": {
                    "instantaneous-power": 4700,
                    "nameplate-power": 15,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "energy": {
                    "total-energy-consumed": 115,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "component": [
                    {
                      "component-id": "phone-main",
                      "references": {
                        "ref-string": "5678"
                      },
                      "power": {
                        "instantaneous-power": 4700,
                        "nameplate-power": 15,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r2",
                          "peer-component": [
                            {
                              "peer-component": "lc1",
                              "details": "PoE source on router r2 line card"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              },
              {
                "node-id": "ap-c",
                "ietf-power-energy-network:energy-node-attributes": {
                  "references": {
                    "ref-string": "ap-local-17"
                  },
                  "power": {
                    "instantaneous-power": 7300,
                    "nameplate-power": 20,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "energy": {
                    "total-energy-consumed": 230,
                    "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                  },
                  "component": [
                    {
                      "component-id": "ap-main",
                      "references": {
                        "ref-string": "ap-local-17"
                      },
                      "power": {
                        "instantaneous-power": 7300,
                        "nameplate-power": 20,
                        "data-source-accuracy": "ietf-power-energy-base:accuracy-measured-silver-1"
                      },
                      "relationship": [
                        {
                          "type": "ietf-power-energy-base:powered-by",
                          "peer-node": "r3",
                          "peer-component": [
                            {
                              "peer-component": "lc2",
                              "details": "PoE source on router r3 line card"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="audit-trail">
      <name>Audit Trail</name>
      <section anchor="read-provenance-data">
        <name>Read provenance data</name>
        <t>## Follow Collection Graph
## Compare Collection Graph with Inventory
Any devices not reported?
Any double counting?</t>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="types-and-groupings">
        <name>Types and Groupings</name>
        <sourcecode type="yang" markers="true" name="ietf-power-energy-base.yang"><![CDATA[
module ietf-power-energy-base {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-power-energy-base";
  prefix peb;

  import iana-power-and-energy {
    prefix ianaeo;
    reference
      "IANA-defined identities for power and energy class";
  }

  organization
    "IETF GREEN Working Group";

  contact
    "WG Web: <https://datatracker.ietf.org/wg/green/>
     WG List: <mailto:green@ietf.org>";

  description
    "Base identities, typedefs, and reusable power and energy
     attributes.";

  revision 2026-07-02 {
    description
      "Initial revision.";
    reference
      "RFC XXX: Energy Object YANG Data Model";
  }

  identity data-source-accuracy {
    description
      "Base identity for all possible data accuracy types.";
  }

  identity accuracy-unknown {
    base data-source-accuracy;
    description
      "The accuracy of the power data is unknown.";
  }

  identity accuracy-unavailable {
    base accuracy-unknown;
    description
      "A power data is not available for some reason, such as a sensor failure or a component being powered off.";
  }

  identity accuracy-like-parent {
    base data-source-accuracy;
    description
      "The accuracy of the power and energy data is inherited from the parent object.";
  }

  identity accuracy-estimated {
    base data-source-accuracy;
    description
      "The power data is estimated rather than directly measured.";
  }

  identity accuracy-static {
    base accuracy-estimated;
    description
      "Static data such as manufacturer specifications or nameplate ratings.";
  }

  identity accuracy-historic {
    base accuracy-estimated;
    description
      "Historic measurement data for this specific system and usage pattern.";
  }

  identity accuracy-learned {
    base accuracy-estimated;
    description
      "A machine-learning-based prediction.";
  }

  identity accuracy-measured {
    base data-source-accuracy;
    description
      "The power data is a direct, real-time measurement from a sensor.";
  }

  identity accuracy-measured-bronze {
    base accuracy-measured;
    description
      "Direct measurement with bronze accuracy.";
  }

  identity accuracy-measured-bronze-1 {
    base accuracy-measured-bronze;
    description
      "Bronze accuracy with +/-1 absolute unit.";
  }

  identity accuracy-measured-bronze-10 {
    base accuracy-measured-bronze;
    description
      "Bronze accuracy with +/-10 absolute units.";
  }

  identity accuracy-measured-bronze-100 {
    base accuracy-measured-bronze;
    description
      "Bronze accuracy with +/-100 absolute units.";
  }

  identity accuracy-measured-bronze-1000 {
    base accuracy-measured-bronze;
    description
      "Bronze accuracy with +/-1000 absolute units.";
  }

  identity accuracy-measured-silver {
    base accuracy-measured;
    description
      "Direct measurement with silver accuracy.";
  }

  identity accuracy-measured-silver-1 {
    base accuracy-measured-silver;
    description
      "Silver accuracy with +/-1 absolute unit.";
  }

  identity accuracy-measured-silver-10 {
    base accuracy-measured-silver;
    description
      "Silver accuracy with +/-10 absolute units.";
  }

  identity accuracy-measured-silver-100 {
    base accuracy-measured-silver;
    description
      "Silver accuracy with +/-100 absolute units.";
  }

  identity accuracy-measured-silver-1000 {
    base accuracy-measured-silver;
    description
      "Silver accuracy with +/-1000 absolute units.";
  }

  identity accuracy-measured-gold {
    base accuracy-measured;
    description
      "Direct measurement with gold accuracy.";
  }

  identity accuracy-measured-gold-1 {
    base accuracy-measured-gold;
    description
      "Gold accuracy with +/-1 absolute unit.";
  }

  identity accuracy-measured-gold-10 {
    base accuracy-measured-gold;
    description
      "Gold accuracy with +/-10 absolute units.";
  }

  identity accuracy-measured-gold-100 {
    base accuracy-measured-gold;
    description
      "Gold accuracy with +/-100 absolute units.";
  }

  identity accuracy-measured-gold-1000 {
    base accuracy-measured-gold;
    description
      "Gold accuracy with +/-1000 absolute units.";
  }

  identity accuracy-measured-red {
    base accuracy-measured;
    description
      "Direct measurement with red accuracy.";
  }

  identity accuracy-measured-red-1 {
    base accuracy-measured-red;
    description
      "Red accuracy with +/-1 absolute unit.";
  }

  identity accuracy-measured-red-10 {
    base accuracy-measured-red;
    description
      "Red accuracy with +/-10 absolute units.";
  }

  identity accuracy-measured-red-100 {
    base accuracy-measured-red;
    description
      "Red accuracy with +/-100 absolute units.";
  }

  identity accuracy-measured-red-1000 {
    base accuracy-measured-red;
    description
      "Red accuracy with +/-1000 absolute units.";
  }

  identity accuracy-measured-ones {
    base accuracy-measured;
    description
      "All digits are valid except trailing zeros.";
  }

  typedef power-factor {
    type uint8 {
      range "0 .. 100";
    }
    default 100;
    description
      "Percent value of the power factor measurement.";
  }

  identity power-state {
    description
      "Base identity for all possible power states.";
  }

  identity power-state-on {
    base power-state;
    description
      "Full power on.";
  }

  identity power-state-off {
    base power-state;
    description
      "Power off.";
  }

  identity power-state-sleep {
    base power-state;
    description
      "Low-power state.";
  }

  identity energy-relationship-type {
    description
      "Base identity for energy object relationships.";
  }

  identity powered-by {
    base energy-relationship-type;
    description
      "Energy Object A is powered by Energy Object B.";
  }

  identity powering {
    base energy-relationship-type;
    description
      "Energy Object A is powering Energy Object B.";
  }

  identity metered-by {
    base energy-relationship-type;
    description
      "Energy Object A is metered by Energy Object B.";
  }

  identity metering {
    base energy-relationship-type;
    description
      "Energy Object A is metering Energy Object B.";
  }

  identity aggregated-by {
    base energy-relationship-type;
    description
      "Energy Object A is aggregated by Energy Object B.";
  }

  identity aggregating {
    base energy-relationship-type;
    description
      "Energy Object A is aggregating Energy Object B.";
  }

  identity enabled-by {
    base energy-relationship-type;
    description
      "Energy Object A is enabled by Energy Object B.";
  }

  identity enabling {
    base energy-relationship-type;
    description
      "Energy Object A is enabling Energy Object B.";
  }

  grouping power-and-energy-attributes {
    description
      "Reusable power and energy measurement attributes.";

    container power {
      description
        "Container for power measurement attributes.";

      leaf instantaneous-power {
        type int64;
        units "mWatts";
        description
          "Instantaneous power usage for the energy object.";
      }

      leaf nameplate-power {
        type uint32;
        units "Watts";
        description
          "Nameplate power rating of the energy object.";
      }

      leaf data-source-accuracy {
        type identityref {
          base data-source-accuracy;
        }
        default accuracy-like-parent;
        description
          "Accuracy of the power data source.";
      }

      leaf power-factor {
        type power-factor;
        description
          "Percent value of the power factor measurement.";
      }

      leaf measurement-local {
        type boolean;
        description
          "Indicates whether the power measurement is local or remote.";
      }
    }

    container energy {
      description
        "Container for energy measurement attributes.";

      leaf total-energy-consumed {
        type uint64;
        units "Watt-hours";
        description
          "Total cumulative energy consumed since the last reset.";
      }

      leaf total-energy-delivered {
        type uint64;
        units "Watt-hours";
        description
          "Total cumulative energy delivered since the last reset.";
      }

      leaf data-source-accuracy {
        type identityref {
          base data-source-accuracy;
        }
        default accuracy-like-parent;
        description
          "Accuracy of the energy data source.";
      }

      leaf measurement-local {
        type boolean;
        description
          "Indicates whether the energy measurement is local or remote.";
      }

      leaf-list certifications {
        type identityref {
          base ianaeo:certification-type;
        }
        description
          "Certifications applicable to this energy object.";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="energy-network-state">
        <name>Energy Network State</name>
        <sourcecode type="yang" markers="true" name="ietf-power-energy-network.yang"><![CDATA[
module ietf-power-energy-network {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-power-energy-network";
  prefix pen;

  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  import ietf-power-energy-base {
    prefix peb;
    reference
      "RFC XXX: Energy Object YANG Data Model";
  }

  import ietf-network-inventory {
    prefix nwi;
    reference
      "RFC XXXX: A YANG Data Model for Network Inventory";
  }

  organization
    "IETF GREEN Working Group";

  contact
    "WG Web: <https://datatracker.ietf.org/wg/green/>
     WG List: <mailto:green@ietf.org>";

  description
    "Augments the network inventory model with reusable power and
     energy attributes for network components and defines a
     network-wide energy flow view.";

  revision 2026-09-26 {
    description
      "Initial revision.";
    reference
      "RFC XXX: Energy Object YANG Data Model";
  }

  grouping references {
    description
      "A set of optional identifiers for correlating an energy
       node or component with external systems. Multiple
       references may be present simultaneously.";

    container references {
      description
        "External references for this object.";

      leaf ref-string {
        type string;
        description
          "Implementation-specific local or proprietary
           identifier.";
      }

      leaf ref-ietf-hw {
        type string;
        description
          "Identifier corresponding to a component known through
           the ietf-hardware model.";
      }
      // Augment additional external references as needed here
      // Augmentations would need to target each location where this
      // grouping is used.
    }
  }

  grouping relationship-set {
    description
      "Relationships from a local component to peer nodes and
       zero or more peer components.";

    list relationship {
      key "type peer-node";
      description
        "Relationships for a local energy component.";

      leaf type {
        type identityref {
          base peb:energy-relationship-type;
        }
        description
          "The type of relationship the local component has with
           the peer node or component(s).";
      }

      leaf peer-node {
        type leafref {
          path "../../../../../nw:node/nw:node-id";
        }
        description
          "The peer energy node participating in this
           relationship.";
      }

      list peer-component {
        key "peer-component";
        description
          "One or more peer components within the peer node.
           If this list is empty, the relationship applies to the
           peer node as a whole.";

        leaf peer-component {
          type leafref {
            path "../../../../../../nw:node[nw:node-id=current()/../../peer-node]"
               + "/pen:energy-node-attributes/pen:component"
               + "/pen:component-id";
          }
          description
            "A peer component within the referenced peer node.";
        }

        leaf details {
          type string;
          description
            "Additional implementation-specific details about the
             relationship to this peer component.";
        }
      }
    }
  }

  augment "/nw:networks/nw:network/nw:network-types" {
    description
      "Introduces a network type for representing energy flows
       between network devices and components.";

    container energy-network {
      presence
        "Indicates an energy-flow network.";
      description
        "This network type represents energy relationships, power
         sourcing, and energy-consuming structures that may exist
         alongside other network views such as physical or logical
         topology.";
    }
  }

  augment "/nw:networks/nw:network/nw:node" {
    when '../nw:network-types/pen:energy-network';
    description
      "Adds energy modeling attributes to nodes in an energy
       network.";

    container energy-node-attributes {
      presence
        "Indicates that the node participates in the energy
         network view.";
      description
        "Energy-related attributes for a node in the energy
         network. The node may represent a router, phone, access
         point, or another energy-relevant device.";

      uses references;
      uses peb:power-and-energy-attributes;

      list component {
        key "component-id";
        description
          "Energy-relevant components scoped locally to this node.
           Component identifiers are unique only within the parent
           node, avoiding network-wide naming collisions.";

        leaf component-id {
          type string;
          description
            "Identifier of the component within the parent energy
             node.";
        }

        uses references;
        uses peb:power-and-energy-attributes;

        uses relationship-set;
      }
    }
  }

  augment "/nwi:network-inventory/nwi:network-elements/nwi:network-element/nwi:components/nwi:component" {
    description
      "Adds power and energy attributes to network inventory
       components.";
    uses peb:power-and-energy-attributes;
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC7950">
        <front>
          <title>The YANG 1.1 Data Modeling Language</title>
          <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
          <date month="August" year="2016"/>
          <abstract>
            <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7950"/>
        <seriesInfo name="DOI" value="10.17487/RFC7950"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 1422?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
      <t>Members of the design team are Emile Stehpan, Qin Wu, Sawsan Elzahr, Marisol Palmero, Gen Chen, Muhammad Awais Jadoon,  Reshad Rahman, Benoit Claise and Jan Lindblad. Work overseen by Rob Wilton and Diego Lopez.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
+CJx9e7tm7hqYbmJqx9rFZTIfCNlEOG9On+9M3+11LBkfL/+2qzLhquzWl+n
J1t9in4d22NtOWPGtPaurD2298m1x+5+e32Y+BDaY3NtsZU1QnWB9tj+x9Ie
u7adpPmNkZtO0k0nafOdpL0r7iTdvXez4rGwbGTF897jyjVd8VyzTlLTrpL6
iGvfSWrYemL/fRhxdQOdpL2r7iTt38RVC8tNXP1Yq6DNdJL2rryTtHvTSSr+
Fv6c4jp2kpqoMtC2ae1fWSep/Sntx9pJ+nbn9rVh4kPoJM21xVbWCNUFOkl3
bzpJNpYNdJLagpENfNNJuukkbbKTtH/Ve5JWraBuVjwrr3jee1y5WfFsqD+x
f9X9iTs33mphufHWT7Hv2/IrtTr4RnUENKzb8eXqTUT0Tp0PP6xuppG0f+WN
pFUbv59sI2nOb67fXzdpd2//1oYbQ7daH7k2WMfuxhoq8yzjcttCu3sba22t
zsQltoWWeF63UtxabIWtbBGOtWNWu0XSoOWtksBvikGF5ppte161JYRFhtIi
vpBOv0Ur3S3fbXgNSo6rS1ONr5x4f2nq9p279zadpu5+amnqOjHxQaSpNits
ZYtwrJ+mWi2SBt2kqY9hT8XlpKm9Ty5Ntb1x5/3lKKCIXmPu7t7dcKpq32zV
EBSu02Jk7QftbU2DDzxVLWqGrZmnFlhiK2uE6uq2ALZZJoHfpCuF5pq12Fd9
dN2crvY/gnRV+V55A5lTv6qu4H/PnXN6tTceUaDE4mE6GvP0jUjl9x0827nj
WHfQa75vfIe39VbqLr4onI4wYAd4eCseCRiEdKIBHqjMkjQ+E5E5eICOEKTz
CazTH9mTlCcjdSLkOMG339fvqVdJHxcvbXMOoqk5rg9PcUxFEqeZ8B+oO3GO
p/N6cR7hi/EfIHF0BsIzdRIuUXeKL1ejd1E/0QdpSP3qc3zXuT4PruE4OPQg
sl56Jbp+Vzbb7e7exwNA6MXvCQduO3ka9XB4D99/PZa9t+OwF8keDus1o+3c
BwwJxNPgLUtEnxDiQYBpxgIecT0ASNaDtBPpEQgi4vt0ycRubQWd44PnB66P
59ziS/XV0R6BPlqS0Npv5aaDD4iYcyTBPsHZUdjwaHF1Wmf1FGwiGV/fjQcv
E+jrJ+y16PfYd8WR1GgFeDAzGF15+vVkqA+9/kERDKOeBniS9Xd4PnQW96qH
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
AAA=

-->

</rfc>
