<?xml version="1.0" encoding="UTF-8"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc [
  <!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->

  <!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
  <!ENTITY RFC3688 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml">
  <!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
  <!ENTITY RFC8340 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml">
  <!ENTITY RFC7950 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
  <!ENTITY RFC6241 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
  <!ENTITY RFC6242 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6242.xml">
  <!ENTITY RFC6830 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6830.xml">
  <!ENTITY RFC9911 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9911.xml">
  <!ENTITY RFC8309 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8309.xml">
  <!ENTITY RFC8040 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
  <!ENTITY RFC8341 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
  <!ENTITY RFC9907 PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9907.xml">
  <!ENTITY I-D.belmq-green-framework PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.belmq-green-framework.xml">
  <!ENTITY I-D.ietf-opsawg-rfc5706bis PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-opsawg-rfc5706bis.xml">
  <!ENTITY I-D.ietf-teas-ietf-network-slice-nbi-yang PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-ietf-network-slice-nbi-yang.xml">
  <!ENTITY I-D.bcmj-green-power-and-energy-yang PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.bcmj-green-power-and-energy-yang.xml">
  <!ENTITY I-D.madpr-green-provenance PUBLIC "" "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.madpr-green-provenance.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes"?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes"?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes"?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no"?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-petra-green-api-05" ipr="trust200902"
  submissionType="IETF">
  <!-- category values: std, bcp, info, exp, and historic
  ipr values: full3667, noModification3667, noDerivatives3667
  you can add the attributes updates="NNNN" and obsoletes="NNNN"
  they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
    full title is longer than 39 characters -->

    <title abbrev="Energy-API">Path Energy Traffic Ratio API (PETRA)</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Alberto Rodriguez-Natal" initials="A." surname="Rodriguez-Natal">
      <organization>Cisco</organization>
      <address>
        <postal>
          <street></street>
          <city>Barcelona</city>
          <region></region>
          <code></code>
          <country>Spain</country>
        </postal>
        <phone></phone>
        <email>natal@cisco.com</email>
      </address>
    </author>

    <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
      <organization>Telefonica</organization>
      <address>
        <postal>
          <street></street>
          <city>Madrid</city>
          <region></region>
          <code></code>
          <country>Spain</country>
        </postal>
        <phone></phone>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>

    <author fullname="Marisol Palmero" initials="M." surname="Palmero">
      <organization>Independent Consultant</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>Spain</country>
        </postal>
        <phone></phone>
        <email>marisol.ietf@gmail.com</email>
      </address>
    </author>

    <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
      <organization>All For Eco</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
        <phone></phone>
        <email>jan.lindblad+ietf@for.eco</email>
      </address>
    </author>

    <author fullname="Adrian Gallego Sanchez" initials="A." surname="Gallego Sanchez">
      <organization>T-SYSTEMS</organization>
      <address>
        <postal>
          <street></street>
          <city>Madrid </city>
          <region></region>
          <code></code>
          <country>Spain</country>
        </postal>
        <phone></phone>
        <email>ADRIAN.GALLEGO-SANCHEZ@t-systems.com</email>
      </address>
    </author>

    <date/>

    <area>IETF</area>

    <workgroup>GREEN</workgroup>

    <keyword>energy, network, underlay</keyword>

    <abstract>
      <t>This document describes an API to query a network regarding its Energy Traffic Ratio for a
        given path.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

      <t>Energy management is becoming one of the major societal goals for the next decade, and
        networks are one of the major consumers of energy nowadays. Energy management of network
        services is thus one of the forefronts of innovation and action from network service
        stakeholders, involving manufacturers, operators and customers. In this line, there is a
        shared goal of achieving better energy awareness.</t>

      <t>As with any other network metric, the energy traffic ratio could be collected from the
        underlying network infrastructure. However, there is not a common or single definition of
        energy metrics towards network consumers so that can be uniformly reported, particularly in
        heterogeneous network scenarios. This document introduces an API to query networks about
        Energy Traffic Ratio.</t>

    </section>

    <section title="Terminology and Requirements Notation">
      <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 BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref>
        when, and only when, they appear in all capitals, as shown here.</t>

    </section>

    <section anchor="api" title="Path Energy Traffic Ratio API (PETRA)">
      <t> This documents describes an API to query a network about the Energy Traffic Ratio for a given path. It takes as input the source and destination of a path along with the traffic throughput between and returns energy information related to the traffic on the path. This is energy computed by the infrastructure that is dynamically part of the traffic path. The API is agnostic to the actual hops and underlaying infrastructure that enables a path, which might change transparently to the API. This document only describes the API, the computation of the energy information to return is out of the scope of this document. In the current version of this document, source and destination endpoints can be IP addresses, IP prefixes, or MAC addresses. </t>

      <section anchor="energy" title="Energy Information">
        <t>This API allows to return a number of energy attributes associated with the path and the
          traffic. Currently the parameters that could be returned as energy information as part of
          the query are:</t>
        <ul>
          <li>Watts per Gigabit: How many Watts are consumed per Gigabit of traffic traversing the
            path.</li>
        </ul>

      </section>

      <section anchor="recursive" title="Recursive Usage">
        <t>The API is envisioned in such a way that could be used recursively. That means, subpaths
          could report their energy consumption using PETRA and such energy consumption could be
          aggregated and reported for the overall path also using PETRA.</t>

        <t>Similarly, this API could be (recursively) used to provide energy information according to the definition of Service Models in an SDN context as described in <xref target="RFC8309"/>. In that case, using Figure 3 in <xref target="RFC8309"/> as reference (below), PETRA could be used between the Controller(s) and the Network Orchestrator(s), between the Network Orchestrator(s) and the Service Orchestrator, and between the Service Orchestrator and the Customer(s).</t>

        <t>
          <figure>
            <artwork><![CDATA[
                                                 Customer
                            ------------------   Service  ----------
                           |                  |  Model   |          |
PETRA as                   |     Service      |<-------->| Customer |
Customer Service           |   Orchestrator   |    (a)   |          |
related API                |                  |           ----------
                            ------------------
                               .          .
##########################    .            .        (b)   -----------
                             . (b)          .      ......|Application|
                            .                .     :     |  BSS/OSS  |
PETRA as                   .                  .    :      -----------
Service related API       .  Service Delivery  .   :
                         .       Model          .  :
                 ------------------    ------------------
                |                  |  |                  |
#############   |     Network      |  |     Network      |
                |   Orchestrator   |  |   Orchestrator   |
                |                  |  |                  |
                .------------------    ------------------.
PETRA as       .         :                       :        .
Network API   .          : Network Configuration :         .
            .            :        Model          :          .
      ------------     ------------     ------------    ------------
     |            |   |            |   |            |  |            |
###  | Controller |   | Controller |   | Controller |  | Controller |
     |            |   |            |   |            |  |            |
      ------------     ------------     ------------    ------------
         :              .       .                 :            :
         :             .         .      Device    :            :
         :            .           . Configuration :            :
         :            .           .     Model     :            :
     ---------     ---------   ---------     ---------      ---------
    | Network |   | Network | | Network |   | Network |    | Network |
    | Element |   | Element | | Element |   | Element |    | Element |
     ---------     ---------   ---------     ---------      ---------
        ]]></artwork>
        </figure>
      </t>

        <t>While considering recursive usage, the aspect of double-counting shall also be taken into consideration. Double counting refers to the fact of counting more than once the same energy consumed. Organizations using PETRA in a recursive manner need to take appropriate measures to ensure no double-counting occurs across recursive calls to the API.</t>

      </section>

    </section>


    <section anchor="sec-yang" title="YANG Module">
      <t>This is a posible definition of PETRA as a module following the YANG specification <xref
        target="RFC7950" />. The module uses the common YANG data types defined in <xref
        target="RFC9911" />, and imports the network slice model from <xref
        target="I-D.ietf-teas-ietf-network-slice-nbi-yang" /> and the power and energy model from
        <xref target="I-D.bcmj-green-power-and-energy-yang" />.</t>

      <section title="Module Structure">
        <t>This section uses the graphical representation of data models defined in <xref
            target="RFC8340" />.</t>
        <t>
          <figure>
            <artwork><![CDATA[
module: ietf-petra
  +--rw energy
     +---x query
        +---w input
        |  +---w source
        |  |  +---w (identifier)
        |  |     +--:(ip-address)
        |  |     |  +---w ip-address     ietf-inet-types:ip-address
        |  |     +--:(ip-prefix)
        |  |     |  +---w ip-prefix      ietf-inet-types:ip-prefix
        |  |     +--:(mac-address)
        |  |     |  +---w mac-address    ietf-yang-types:mac-address
        |  |     +--:(sdp-id)
        |  |        +---w sdp-id         -> /ietf-nss:network-slice-services/slice-service/sdps/sdp/id
        |  +---w destination
        |  |  +---w (identifier)
        |  |     +--:(ip-address)
        |  |     |  +---w ip-address     ietf-inet-types:ip-address
        |  |     +--:(ip-prefix)
        |  |     |  +---w ip-prefix      ietf-inet-types:ip-prefix
        |  |     +--:(mac-address)
        |  |     |  +---w mac-address    ietf-yang-types:mac-address
        |  |     +--:(sdp-id)
        |  |        +---w sdp-id         -> /ietf-nss:network-slice-services/slice-service/sdps/sdp/id
        |  +---w (traffic-characterization)?
        |     +--:(throughput)
        |     |  +---w throughput?         decimal64
        |     +--:(time-window-and-data-transmitted)
        |        +---w time-window
        |        |  +---w start-time    ietf-yang-types:date-and-time
        |        |  +---w end-time      ietf-yang-types:date-and-time
        |        +---w data-transmitted    decimal64
        +--ro output
           +--ro (result)?
              +--:(success)
              |  +--ro success
              |     +--ro watts-per-gigabit?      decimal64
              |     +--ro data-source-accuracy?   identityref
              +--:(invalid-endpoint)
                 +--ro invalid-endpoint!

                ]]></artwork>
          </figure>
        </t>
        <t />
      </section>

      <section title="Module Definition">
        <t>
          <figure>
            <artwork><![CDATA[<CODE BEGINS> file "ietf-petra@2026-07-06.yang"
module ietf-petra {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-petra";
  prefix petra;

  import ietf-inet-types {
    prefix ietf-inet-types;
    reference "RFC 9911: Common YANG Data Types";
  }

  import ietf-yang-types {
    prefix ietf-yang-types;
    reference "RFC 9911: Common YANG Data Types";
  }

  import ietf-network-slice-service {
    prefix ietf-nss;
    revision-date 2026-05-27;
    reference
      "draft-ietf-teas-ietf-network-slice-nbi-yang-26:
      A YANG Data Model for the RFC 9543 Network Slice Service.";
  }

  import ietf-power-and-energy {
    prefix eo;
    reference
      "draft-bcmj-green-power-and-energy-yang:
      Power and Energy YANG Module.";
  }

  organization
    "IETF GREEN Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
    WG List:  <mailto:green@ietf.org>";
  description
    "Initial YANG rendition of the PETRA Energy API, v1.0.1

    Copyright (c) 2025 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.

    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";

/*
    If you have an implementation of this YANG module, you could
    access it like something this over RESTCONF:

    $ curl --location --request POST \
      'https://localhost:8008/restconf/operations/ietf-petra:energy/query' \
      --header 'Content-Type: application/yang-data+json' \
      --user 'admin:admin' \
      --data-raw '{
          'input' : {
              'source': {
                  'ip-prefix': '10.10.10.0/24'
              },
              'destination': {
                  'ip-prefix': '10.20.20.0/24'
              },
              'throughput': '40'
          }
        }'

    And if all goes well, you might receive (besides all the
    HTTP headers) a reply body with something like this:

    {
      'output': {
        'success': {
          'watts-per-gigabit': '191.855'
        }
      }
    }
*/

  revision 2026-07-06 {
    description
      "Initial YANG rendition of the PETRA Energy API, v1.0.1";
    reference
      "RFC XXXX: ...";
  }

  grouping endpoint {
    description
      "Identifies one endpoint of an energy-measurement path.";
    choice identifier {
      mandatory true;
      description
        "Endpoint represented as an IP address, IP prefix, MAC address,
        or Service Demarcation Point (SDP) identifier.";
      case ip-address {
        leaf ip-address {
          type ietf-inet-types:ip-address;
          mandatory true;
          description
            "IPv4 or IPv6 address.";
        }
      }
      case ip-prefix {
        leaf ip-prefix {
          type ietf-inet-types:ip-prefix;
          mandatory true;
          description
            "IPv4 or IPv6 network prefix.";
        }
      }
      case mac-address {
        leaf mac-address {
          type ietf-yang-types:mac-address;
          mandatory true;
          description
            "IEEE 802 MAC address.";
        }
      }
      case sdp-id {
        leaf sdp-id {
          type leafref {
            path "/ietf-nss:network-slice-services"
               + "/ietf-nss:slice-service"
               + "/ietf-nss:sdps"
               + "/ietf-nss:sdp"
               + "/ietf-nss:id";
            require-instance true;
          }
          mandatory true;
          description
            "Reference to a Service Demarcation Point (SDP) within the
            scope of a Network Slice Controller (NSC).";
        }
      }
    }
  }

  grouping energy-metrics {
    description
      "Grouping for query result metrics.";
    leaf watts-per-gigabit {
      type decimal64 {
        fraction-digits 3;
      }
      units W/Gb;
      description
        "Watts consumed per Gigabit transmitted";
    }
    leaf data-source-accuracy {
      type identityref { base eo:data-source-accuracy; }
      description
        "Accuracy classification of the watts-per-gigabit value,
        using the GREEN data-source-accuracy hierarchy.
        Implementations SHOULD populate this leaf to enable
        consumers to assess reliability. For path-aggregated
        values derived from multiple components, the RECOMMENDED
        value is the LEAST accurate accuracy class among all
        contributing energy objects.";
    }
  }

  container energy {
    description
      "PETRA API top level container.";
    action query {
      description
        "Query the network for energy consumption";
      input {
        must "throughput or (time-window/start-time and
              time-window/end-time and data-transmitted)" {
          error-message
            "Provide either throughput or a time window with start
            and end times together with data-transmitted.";
        }
        container source {
          description
            "Source endpoint.";
          uses endpoint;
        }
        container destination {
          description
            "Destination endpoint.";
          uses endpoint;
        }
        choice traffic-characterization {
          default throughput;
          description
            "Characterizes the traffic either by its throughput or by
            the amount of data transmitted during a time window.";
          case throughput {
            leaf throughput {
              type decimal64 {
                fraction-digits 3;
              }
              units Gb/s;
              description
                "Throughput between source and destination
                (in gigabits per second).";
            }
          }
          case time-window-and-data-transmitted {
            container time-window {
              description
                "Interval during which the data was transmitted.";
              leaf start-time {
                type ietf-yang-types:date-and-time;
                mandatory true;
                description
                  "Start date and time of the interval.";
              }
              leaf end-time {
                type ietf-yang-types:date-and-time;
                mandatory true;
                description
                  "End date and time of the interval.";
              }
            }
            leaf data-transmitted {
              type decimal64 {
                fraction-digits 3;
              }
              units Gb;
              mandatory true;
              description
                "Amount of data transmitted between source and
                destination during the time window (in gigabits).";
            }
          }
        }
      }
      output {
        choice result {
          description
            "Choice of which kind of result the query gave.";
          container success {
            description
              "Successful operation";
            uses energy-metrics;
          }
          container invalid-endpoint {
            presence
              "Indicates that an invalid endpoint was supplied.";
            description
              "Invalid source or destination endpoint supplied.";
          }
        }
      }
    }
  }
}
            <CODE ENDS>]]></artwork>
          </figure>
        </t>
      </section>

    </section>


    <section anchor="ops" title="Operational Considerations">
      <t>This section highlights deployment and operations considerations for PETRA, following the
        guidance in <xref target="I-D.ietf-opsawg-rfc5706bis" />.</t>

      <ul>
        <li>Measurement method impact: PETRA results can differ depending on whether values are
          directly measured, estimated, or model-derived. Operators SHOULD document the
          methodology used for each exposed metric.</li>
        <li>Provenance: PETRA does not require provenance support. Deployments that require
          provenance assurance for the Energy Object telemetry used to derive a PETRA result can use
          the per-Energy-Object verification state defined in <xref
            target="I-D.madpr-green-provenance" />.</li>
        <li>Consumer intent differences: customer-facing use cases (for example, SD-WAN visibility
          and SLA reporting) prioritize repeatability and explainability, while operator
          optimization use cases may prioritize freshness and control-loop responsiveness.</li>
        <li>Recursive aggregation and double counting: recursive or multi-domain use of PETRA can
          count the same contribution more than once. Implementations SHOULD define aggregation
          boundaries and controls that avoid double counting across segments and administrative
          domains.</li>
      </ul>
    </section>


    <section anchor="sec" title="Security Considerations">
      <t>The YANG module defined in this document is specified and reviewed following the
        guidance in <xref target="RFC9907" />. PETRA query exchanges can reveal operationally
        sensitive information related to endpoints, traffic, and energy behavior, and therefore
        require careful deployment controls.</t>

      <t>When this API is exposed over NETCONF <xref target="RFC6241" /> or RESTCONF <xref
          target="RFC8040" />, implementations inherit those protocols' security properties and
        deployment requirements.</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 protocol operations and content.</t>

      <t>The module defines no particularly sensitive readable or writable datastore nodes. The
        "energy" container serves only as the parent of the "energy/query" action.</t>

      <t>Implementations and deployments SHOULD consider at least the following:</t>

      <ul>
        <li>Secure transport: mutual authentication, confidentiality, and integrity protection for PETRA exchanges MUST be
          provided by the underlying management protocol and transport.</li>
        <li>Authentication and authorization: servers MUST authenticate clients and MUST enforce
          authorization before processing requests. In particular, invocation of the
          "energy/query" action MUST be limited to authorized users.</li>
        <li>Input validation: implementations SHOULD validate endpoint identifiers and traffic
          characterization values to prevent invalid requests and abusive workloads.</li>
        <li>Information disclosure control: an "energy/query" request contains source and
          destination identifiers plus throughput or time-and-volume traffic information. A
          response can expose energy metrics, their accuracy, or whether the supplied endpoints are
          valid. Unauthorized invocation or observation can therefore disclose customer traffic and
          operational energy information or enable endpoint enumeration. Queries SHOULD be filtered according to policy and client privileges.</li>
        <li>Denial-of-service resilience: repeated or computationally expensive invocations of
          "energy/query" can consume controller or orchestrator resources. Implementations SHOULD
          apply rate limiting, quotas, and/or bounded processing.</li>
        <li>Privacy: where measurements can be correlated to customer behavior, operators SHOULD
          minimize retention and protect logs and telemetry generated by queries.</li>
      </ul>

    </section>

    <section anchor="acks" title="Acknowledgments">
      <t>Kudos to Elis Lulja for his help with the OpenAPI specification in early versions of this
        draft. Thanks to Fernando Sanz Garcia and Lori Jakab for their help and support on this
        work. </t>

        <t>The contribution of Telefonica to this document has been supported by the Smart Networks and Services Joint Undertaking (SNS JU) under the European Union's Horizon Europe research and innovation projects 6Green (Grant Agreement no. 101096925) and Exigence (Grant Agreement no. 101139120). The contribution of A. Gallego Sánchez to this document has been partially supported by the Smart Networks and Services Joint Undertaking (SNS JU) under the European Union's Horizon Europe research and innovation project Sustain6G (Grant Agreement no. 101191936).</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">

      <t>IANA is requested to register the following URI in the "ns" registry within the "IETF XML Registry" group <xref target="RFC3688" />:</t>

      <t>URI: urn:ietf:params:xml:ns:yang:ietf-petra</t>
      <t>Registrant Contact: The IESG</t>
      <t>XML: N/A; the requested URI is an XML namespace.</t>

      <t>IANA is requested to register the following YANG module in the "YANG Module Names" registry <xref target="RFC7950" /> within the "YANG Parameters" registry group:</t>

      <t>Name: ietf-petra</t>
      <t>Maintained by IANA? N</t>
      <t>Namespace: urn:ietf:params:xml:ns:yang:ietf-petra</t>
      <t>Prefix: petra</t>
      <t>Reference: RFC XXXX</t>

    </section>

  </middle>

  <back>

    <references title="Normative References">

      &RFC2119;

      &RFC3688;

      &RFC7950;

      &RFC6241;

      &RFC6242;

      &RFC9911;

      &RFC8040;

      &RFC8174;

      &RFC8309;

      &RFC8340;

      &RFC8341;

      &I-D.belmq-green-framework;

      &I-D.ietf-teas-ietf-network-slice-nbi-yang;

      &I-D.bcmj-green-power-and-energy-yang;

    </references>

    <references title="Informative References">

      &RFC9907;

      &I-D.ietf-opsawg-rfc5706bis;

      &I-D.madpr-green-provenance;

    </references>

    <section anchor="use-cases" title="Use Cases">
      <t>This section describes some use-cases where this specification might be useful. </t>

      <section anchor="sdwan" title="SD-WAN">
        <t>Software-Defined Wide-Area Networks (SD-WAN) have become a common way for enterprises to provide cost-effective connectivity across their different geographically distributed sites. Typically, SD-WAN deployments operate as an overlay network that is established on top of an existing underlay connectivity network. One aspect to consider is that in many SD-WAN production deployments the operator of the overlay network and the operator of the underlay network are different organizations.</t>

        <t>This poses an additional challenge when trying to derive energy metrics. Even if the underlay network is instrumented to collect energy data, this data is opaque to the operator of the overlay network which has no access to underlay information. While operators of underlay networks offer certain general network metrics to overlay operators, no interface has been defined to allow the overlay operator to query the underlay network for energy information.</t>

        <t>In this context, the PETRA specification presented in this document enables the operator of the SD-WAN network to coordinate with the underlay operator to capture energy data. This in turns opens further use-cases, from observability and reporting to potentially overlay policies based on underlay energy data, further enabling an overall more energy-efficient operation of the network.</t>

        <t>In addition to energy considerations in SD-WAN deployments, PETRA can also be leveraged for broader energy-aware service routing. In this context, network controllers and service orchestrators, such as SD-WAN controllers, transport SDN controllers, 5G slice orchestrators, or multi-domain service orchestrators, can use PETRA metrics not only to balance latency, throughput, or load, but also to optimize path selection according to energy-efficiency objectives. For example, paths with the lowest energy-consumption could be preferred, enabling service differentiation where energy-efficient paths are explicitly prioritized. This extends the SD-WAN use case into a more general paradigm where routing decisions are jointly driven by network performance and energy impact.</t>
      </section>

      <section anchor="multilayer" title="Multilayer Energy Management">
        <t>The concept of multilayer L3-L1 collection involves integrating data from different network layers to provide a comprehensive view of network operations. The use case of multilayer involves collecting and correlating data from Layer 3 (network layer) down to Layer 1 (physical layer). This multilayer approach allows for better network performance, optimization, and troubleshooting by providing end-to-end visibility.</t>

        <t>Leveraging PETRA API for multilayer L3-L1 collection use case enhances energy management by providing comprehensive visibility, enabling optimization, and supporting proactive management. This makes PETRA a useful tool for more accurate, efficient and effective energy management in modern networks.</t>

      </section>

      <section anchor="SLA" title="SLA Negotiation for Energy-Efficient Services">
        <t>Another use case for PETRA could the negotiation of Service Level Agreements (SLAs) between operators and enterprise customers. By exposing PETRA-derived metrics such as watts-per-gigabit, providers can offer differentiated SLAs that explicitly include environmental targets. This enables customers to select network services not only based on performance guarantees (e.g. latency), but also on their environmental footprint (or a combination of both). Such SLAs empower customers to align their digital services with corporate energy-efficient and sustainability goals and reporting requirements, while operators can use PETRA to provide the energy metrics used for such services.</t>
      </section>

    </section>

    <section anchor="framework" title="Requirements for Energy Efficiency Management ">
      <t>The document Framework for Energy Efficiency Management <xref target="I-D.belmq-green-framework"/> describes a reference model for energy management. The model includes an 'API Service Interface', labeled as interface (g) in the document, which "enables access for service consumption, enabling data retrieval, control, and integration through API". </t>

      <t>In that context, PETRA is one example of such 'API Service Interface'. In the particular case of PETRA, the API might be used to consume from the Network controller, the Domain controller, or both. <xref target="use-cases"/> describes a few use-cases that could make use of PETRA as an 'API Service Interface' within the Framework for Energy Efficiency Management <xref target="I-D.belmq-green-framework"/>.</t>
    </section>
    <section numbered="false" title="Contributors" toc="default">

      <t><figure>
          <artwork><![CDATA[

Fernando Munoz
Cisco
Madrid
Spain
Email: fmunozma@cisco.com


Alejandro Muniz

Madrid
Spain


Roland Schott
Deutsche Telekom
Deutsche-Telekom-Allee 9
64295 Darmstadt
Germany
Email: Roland.Schott@telekom.de
          ]]></artwork>
      </figure></t>
    </section>

  </back>
</rfc>
