<?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.19 (Ruby 3.0.2) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cxx-ippm-ioamaggr-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="ioam-aggr">Aggregation Trace Option for In-situ Operations, Administration, and Maintenance (IOAM)</title>
    <seriesInfo name="Internet-Draft" value="draft-cxx-ippm-ioamaggr-02"/>
    <author initials="A." surname="Clemm" fullname="Alexander Clemm">
      <organization>Sympotech</organization>
      <address>
        <email>ludwig@clemm.org</email>
      </address>
    </author>
    <author initials="L." surname="Metzger" fullname="Laurent Metzger">
      <organization>Ostschweizer Fachhochschule - OST</organization>
      <address>
        <email>laurent.metzger@ost.ch</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <workgroup>IPPM</workgroup>
    <abstract>
      <?line 51?>

<t>The purpose of this memo is to describe a new option type for In-Situ Operations, Administration, and Maintenance (IOAM).  This option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
    </abstract>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This memo proposes a new option type for In-Situ Operations, Administration, and Maintenance (IOAM) <xref target="RFC9197"/>.  The IOAM Aggregate option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
      <t>Many applications interested in telemetry data across a path are not so much interested in each individual node's telemetry, but an aggregate to paint a more holistic picture.  An example of an aggregate could be a sum (for example, the sum of packet dwell times experienced across a path), an average (for example, the average dwell time experienced across a path), or a minimum or maximum (for example, of the dwell time experienced on any hop across the path, along with the node ID where the extreme was experienced).  Other applications include sustainable networking, where (for example) the carbon-intensity of a path as a whole needs to be determined as an input to applications that attempt to minimize pollution attributable to specific networking traffic.</t>
      <t>The aggregation option type proposed in this memo addresses the needs of those applications.  Rather than collecting individual IOAM data parameters at each node and exporting them for further processing, IOAM Aggregate allows to preprocess telemetry data into an aggregate as a packet traverses a path. Aggregating parameters along the path, instead of merely collecting them, offers the following advantages:</t>
      <ul spacing="normal">
        <li>
          <t>It keeps the packet size constant.  This avoids problems such as the possibility of packets exceeding their MTU and need for fragmentation and reassembly in case of longer data paths, or deteriorating packet delays as packets grow in size along a path.</t>
        </li>
        <li>
          <t>It reduces the volume of data to be exported.</t>
        </li>
        <li>
          <t>It obviates the need to correlate data exported from individual nodes as belonging to the same flow, when compared with processing of postcard telemetry data <xref target="RFC9326"/>.</t>
        </li>
        <li>
          <t>It significantly reduces the amount of processing that needs to be done by applications, simplifying their development and deployment.</t>
        </li>
        <li>
          <t>It enables greater network intelligence, such as taking actions on aggregates when certain thresholds are exceeded.</t>
        </li>
      </ul>
      <t>Aggregating parameters does require a small amount of processing (such as, an arithmetic operations to add to a sum, or a comparison operation to determine a minimum) at each hop, requiring some additional processing cycles.  This is a small tradeoff to be aware of when choosing this option.  We believe that this tradeoff will be acceptable in many implementations and deployment scenarios.</t>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t><xref target="RFC9197"/> defines the scope of IOAM as well as the different IOAM nodes.  The following section reiterates those roles and explains how they are applied in the context of IOAM Aggregation.</t>
      <t>IOAM is focused on "limited domains", as defined in <xref target="RFC8799"/>. IOAM is not targeted for a deployment on the global Internet, which would incur additional considerations such as the crossing of Trust Boundaries, authentication of IOAM data, or the desire to obfuscate domain internals to outside parties.   The part of the network that employs IOAM is referred to as the "IOAM-Domain".</t>
      <t>An IOAM-Domain consists of "IOAM encapsulating nodes", "IOAM decapsulating nodes", and "IOAM transit nodes", as depicted in <xref target="FIG-ioam-roles"/>.</t>
      <figure anchor="FIG-ioam-roles">
        <name>Roles of IOAM nodes</name>
        <artwork><![CDATA[
                                                      Export of
                                                  IOAM data (opt.)
                                                          ^
                                                          |
User     +--------+     +--------+     +--------+     +---+----+
packets  |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
-------->|lating  |====>| Node   |====>| Node   |====>|lating  |-->
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
      </figure>
      <t>The role of these nodes is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>The Encapsulating Node originates the IOAM aggregation. It adds the IOAM Aggregation Option to the packet for which telemetry data is to be aggregated across the path and populates the fields with their initial values.</t>
        </li>
        <li>
          <t>The Transit Node is an IOAM-enabled node that aggregates the value of its own telemetry with the aggregate in the packet, updating the aggregation data as needed.</t>
        </li>
        <li>
          <t>The Decapsulating Node terminates the IOAM aggregation.  It aggregates the value of its own telemetry with the aggregate in the packet and updates the aggregation data as needed. It subsequently exports the aggregated data, specifically, including the value of the aggregate itself as well as auxiliary data as applicable (e.g. node ID for min, max, and in case of errors).</t>
        </li>
      </ul>
    </section>
    <section anchor="ioam-aggregation-option-type">
      <name>IOAM Aggregation Option-Type</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>This section defines the data fields for the IOAM Aggregation Option Type format.  Like other IOAM Aggregation Option Types, these data fields can be mapped into a number of transport protocols <xref target="RFC9378"/>.  For example, a transport over IPv6 <xref target="RFC8200"/> has been defined in <xref target="RFC9486"/>.</t>
        <t>The format of the IOAM Aggregation Option Type data fields is depicted in <xref target="FIG-ioam-aggr-option-hdr"/>.</t>
        <figure anchor="FIG-ioam-aggr-option-hdr">
          <name>IOAM Aggregation Option Type Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Namespace-ID           | Flags |       Reserved        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM Data Param                 |  Aggregator   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Aggregate                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Auxil-data Node-ID                |   Hop Count    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The total length of the IOAM Aggregation Option Type data fields is fixed at 16 octets (word-aligned).  These 16 octets hold header information as well as aggregation data in the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Namespace-ID: 16-bit identifier of an IOAM-Namespace, as defined in <xref target="RFC9197"/>.  The Namespace-ID is populated by the encapsulating node and MUST NOT be changed by any of the intermediate nodes.  The Namespace-ID value of 0x0000 is defined as the "Default-Namespace-ID" and MUST be known to all the nodes implementing IOAM.  For any other Namespace-ID value that does not match any Namespace-ID the node is configured to operate on, the node MUST NOT change the contents of the IOAM-Data-Fields except for the Namespace Flag (see below).</t>
          </li>
          <li>
            <t>Flags: 4-bit field to indicate errors that were encountered when attempting to process the IOAM Aggregation Option along the path.  Once a flag is set, no further aggregation occurs along the path.  An intermediate node that encounters an error during processing of the IOAM Aggregation that prevents it from updating the aggregate as requested MUST set the corresponding flag to 1.  In order to facilitate troubleshooting, it also MUST set the value of the Auxil-data Node-ID field to its own Node-ID. The encapsulating node MUST set the value of Flags to zero upon transmission.  When an intermediate node encounters receives a packet in which any of the Flags are non-zero, the node MUST NOT perform further IOAM operations on that packet; instead, the IOAM data MUST be forwarded as-is unchanged.  The following flags are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Flag 1: Aggregator not supported</t>
              </li>
              <li>
                <t>Flag 2: Unsupported IOAM data parameter</t>
              </li>
              <li>
                <t>Flag 3: Unsupported Namespace</t>
              </li>
              <li>
                <t>Flag 4: Any other error</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Reserved: An IOAM encapsulating node MUST set the value to zero upon transmission. IOAM transit nodes MUST ignore the received value.</t>
          </li>
          <li>
            <t>IOAM Data Param: This field identifies the data parameter that is to be aggregated across the nodes.  It MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST NOT change it.  Contrary to IOAM Trace-Type in the pre-allocated and incremental trace option types, only a single parameter is aggregated at a time.  Accordingly, the data parameter to be aggregated is not identified by a a particular bit, but by a value.</t>
          </li>
          <li>
            <t>Aggregator: This 8-bit field identifies the aggregation function that is to be applied.  Its value MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST not change it.  The following aggregators are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Sum (value: 0b1)</t>
              </li>
              <li>
                <t>Min (value: 0b10)</t>
              </li>
              <li>
                <t>Max (value: 0b100)</t>
              </li>
              <li>
                <t>Average (value: 0b1000)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Aggregate: This 32-bit field contains the aggregated value.  Its value is initialized by the encapsulating node,in general by simply recording the value of its data parameter that is to be aggregated.  The field is updated 
by each subsequent node pre the requested aggregation, including IOAM transit nodes as well as the IOAM decapsulating node (prior to performing decapsulation).</t>
          </li>
          <li>
            <t>Auxil-data Node-ID: This 24-bit field contains a Node-ID. It MUST be set by the encapsulating node to its own Node ID. 
Subsequent nodes (IOAM transit nodes, as well as the IOAM decapsulating node prior to performing decapsulation) MUST update the value to their own Node-ID IF AND ONLY IF one of the following conditions hold, otherwise they MUST NOT change its value:
            </t>
            <ul spacing="normal">
              <li>
                <t>When a flag is set by the node (i.e., the first time any type of error is encounted along the path)</t>
              </li>
              <li>
                <t>When the aggregator is one of Min or Max, and a new minimum respectively maximum is encountered.  The value of the Auxil-data Node-ID field is hence used to record where the minimum respectively maximum value was  first encountered.  (When a node matches an existing minimum or maximum but does not beat it, the Node-ID is not updated.)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Hop Count.  This 8-bit fields contains a hop count to record the number of nodes along the path that successfully processed the IOAM Aggregation.  The encapsulating node MUST set the value to 1, and each subsequent node (transit nodes, as well as the decapsulating node prior to performing decapsulation) MUST increment its value by 1.  If the Hop Count at a node exceeds 255, that node MUST set the Hop Count to 0 and set Flag 4 ("any other error") to prevent further processing of the IOAM Aggregation.</t>
          </li>
        </ul>
      </section>
      <section anchor="discussion">
        <name>Discussion</name>
        <t>This section explains some of the design choices and points out items that may be subjected to further discussion.</t>
        <ul spacing="normal">
          <li>
            <t>Single versus multiple parameters.  The Aggregation Option Type allows to only aggregate one data parameter at a time.  This allows to keep the format of the data structure simple and of fixed size. This facilitates processing. It also limits the number of processing cycles that need to be spent for aggregation at each node. An application seeking to perform multiple types of aggregation at a time will need to apply different types of aggregation for different packets.</t>
          </li>
          <li>
            <t>IOAM data parameter identification.  Unlike other IOAM Option Types, data parameters are not represented by a bit position in a field but by a 24-bit identifier.  This allows to support a greater number of parameters.  In order to facilitate compatibility, initially only identifiers SHOULD be used that utilize bits 12 through 22, with other bits set to 0.  The assignment of IOAM data parameter identifiers is at this point up to the network operator, with IOAM data parameters being specific to an IOAM name space.  It is conceivable that a global namespace and a corresponding IANA registry for IOAM data parameters would be introduced at a later point in time.</t>
          </li>
          <li>
            <t>Average aggregator.  An average can be easily derived from dividing a sum obtained across all nodes by the hopcount.  Avoiding division operations along the path can save considerable processing cycles.  It is FFS if the average aggregator is really required.</t>
          </li>
          <li>
            <t>Simultaneous use with other IOAM Option Types.  There are use cases conceivable that would benefit from also adding a trace of which nodes were actually traversed on the path.  The possibility to do so is already provided with other IOAM Option Types and does not need to be added here.  In order to use multiple IOAM Option Types simultaneously, applications can use one of several alternatives.  In one alternative, multiple IOAM Option Types with their corresponding data structures are simultaneously used in the same packet.  In another alternative, different packets of the same flow are each send with a different IOAM Option Type, a form of sampling which however provides no absolute guarantees of path congruency (i.e., different packets traversing the exact same path).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t>The following describes a number of use cases in which the IOAM Aggregation Trace Option can be applied in order to illustrate its use.  Many more such use cases can be identified.</t>
      <ul spacing="normal">
        <li>
          <t>Determination of energy-related metrics along a path.  Energy metrics related to networking paths have been proposed as a way to optimize routing decisions for more sustainable networking (e.g. <xref target="I-D.petra-path-energy-api"/>).  IOAM Aggregation Trace Option allows to easily determine such metrics by aggregating the contributions of nodes along the path without need for postprocessing or coordination by controllers.  An implementation of this has been successfully demonstrated <xref target="NetSoft2024"/>.</t>
        </li>
        <li>
          <t>Identification of outliers to aid in diagnosing and troubleshooting of performance issues in the delivery of service instances.  One use case for IOAM concerns collecting parameters such as the dwell time of packets at each node to aid in diagnosing latency issues. Of particular interest is the determination of the respective outlier on the path in order to identify if any node in particular might be the culprit.  Using the IOAM Aggregation Trace Option allows to deliver data about the particular outlier without the need to collect and then process a larger number of data items from each node across lengthy paths, making diagnosis a lot more effient.</t>
        </li>
        <li>
          <t>Aggregation of packet dwell times across networking paths as a way to optimize networks to better meet service level objectives related to latency.  Providing networking services that meet latency-related service level objectives is a well-documented problem and focus of the networking community.  Some approaches focus on the dwell time of packets as one component of their solution, i.e. the time spent by routers in processing packets <xref target="I-D.eckert-detnet-glbf"/>.  Using the IOAM Aggregation Trace Option allows to directly act on an aggregate, i.e. the data of interest, without having to go through additional steps to first collect and process large numbers of individual raw data items.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A malicious node along the path could attempt to forge the aggregate, resulting in a wrong aggregate to be reported.  This might mislead applications.  Likewise, a malicious node along the path could set a flag to trick other nodes not to process the aggregate any further, or clear a flag to make an errored result appear legitimate.  To avoid this, network operators need to ensure that their network nodes can be trusted and are not compromised.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA requests are TBD.  Future versions of this document may request the establishment of a registry for Aggregators as well as for IOAM Data Parameters.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>
          <t>Ramon Bister, OST</t>
        </li>
        <li>
          <t>Severin Dellsperger, OST</t>
        </li>
        <li>
          <t>Reto Furrer, OST</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9197">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document discusses the data fields and associated data types for IOAM. IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6. IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9197"/>
          <seriesInfo name="DOI" value="10.17487/RFC9197"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8799">
          <front>
            <title>Limited Domains and Internet Protocols</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="B. Liu" initials="B." surname="Liu"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
              <t>This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8799"/>
          <seriesInfo name="DOI" value="10.17487/RFC8799"/>
        </reference>
        <reference anchor="RFC9326">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
            <author fullname="H. Song" initials="H." surname="Song"/>
            <author fullname="B. Gafni" initials="B." surname="Gafni"/>
            <author fullname="F. Brockners" initials="F." surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting operational and telemetry information. Specifically, IOAM allows telemetry data to be pushed into data packets while they traverse the network. This document introduces a new IOAM option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX) Option-Type". This Option-Type is used as a trigger for IOAM data to be directly exported or locally aggregated without being pushed into in-flight data packets. The exporting method and format are outside the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9326"/>
          <seriesInfo name="DOI" value="10.17487/RFC9326"/>
        </reference>
        <reference anchor="RFC9378">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Deployment</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="D. Bernier" initials="D." surname="Bernier"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document provides a framework for IOAM deployment and provides IOAM deployment considerations and guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9378"/>
          <seriesInfo name="DOI" value="10.17487/RFC9378"/>
        </reference>
        <reference anchor="RFC9486">
          <front>
            <title>IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) records operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document outlines how IOAM Data-Fields are encapsulated in IPv6.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9486"/>
          <seriesInfo name="DOI" value="10.17487/RFC9486"/>
        </reference>
        <reference anchor="I-D.petra-path-energy-api">
          <front>
            <title>Path Energy Traffic Ratio API (PETRA)</title>
            <author fullname="Alberto Rodriguez-Natal" initials="A." surname="Rodriguez-Natal">
              <organization>Cisco</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Alejandro Muniz" initials="A." surname="Muniz">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Marisol Palmero" initials="M." surname="Palmero">
              <organization>Cisco</organization>
            </author>
            <author fullname="Fernando Munoz" initials="F." surname="Munoz">
              <organization>Cisco</organization>
            </author>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>Cisco</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document describes an API to query a network regarding its
   Energy Traffic Ratio for a given path.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-petra-path-energy-api-02"/>
        </reference>
        <reference anchor="I-D.eckert-detnet-glbf">
          <front>
            <title>Deterministic Networking (DetNet) Data Plane - guaranteed Latency Based Forwarding (gLBF) for bounded latency with low jitter and asynchronous forwarding in Deterministic Networks</title>
            <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
              <organization>Futurewei Technologies USA</organization>
            </author>
            <author fullname="Alexander Clemm" initials="A." surname="Clemm">
              <organization>Sympotech</organization>
            </author>
            <author fullname="Stewart Bryant" initials="S." surname="Bryant">
              <organization>Independent</organization>
            </author>
            <author fullname="Stefan Hommes" initials="S." surname="Hommes">
              <organization>ZF Friedrichshafen AG</organization>
            </author>
            <date day="5" month="July" year="2024"/>
            <abstract>
              <t>   This memo proposes a mechanism called "guaranteed Latency Based
   Forwarding" (gLBF) as part of DetNet for hop-by-hop packet forwarding
   with per-hop deterministically bounded latency and minimal jitter.

   gLBF is intended to be useful across a wide range of networks and
   applications with need for high-precision deterministic networking
   services, including in-car networks or networks used for industrial
   automation across on factory floors, all the way to ++100Gbps
   country-wide networks.

   Contrary to other mechanisms, gLBF does not require network wide
   clock synchronization, nor does it need to maintain per-flow state at
   network nodes, avoiding drawbacks of other known methods while
   leveraging their advantages.

   Specifically, gLBF uses the queuing model and calculus of Urgency
   Based Scheduling (UBS, [UBS]), which is used by TSN Asynchronous
   Traffic Shaping [TSN-ATS]. gLBF is intended to be a plug-in
   replacement for TSN-ATN or as a parallel mechanism beside TSN-ATS
   because it allows to keeping the same controller-plane design which
   is selecting paths for TSN-ATS, sizing TSN-ATS queues, calculating
   latencies and admitting flows to calculated paths for calculated
   latencies.

   In addition to reducing the jitter compared to TSN-ATS by additional
   buffering (dampening) in the network, gLBF also eliminates the need
   for per-flow, per-hop state maintenance required by TSN-ATS.  This
   avoids the need to signal per-flow state to every hop from the
   controller-plane and associated scaling problems.  It also reduces
   implementation cost for high-speed networking hardware due to the
   avoidance of additional high-speed speed read/write memory access to
   retrieve, process and update per-flow state variables for a large
   number of flows.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-eckert-detnet-glbf-03"/>
        </reference>
        <reference anchor="NetSoft2024">
          <front>
            <title>Towards Sustainable Networking: Unveiling Energy Efficiency Through Hop and Path Efficiency Indicators in Computer Networks.</title>
            <author initials="R." surname="Bister" fullname="R. Bister">
              <organization/>
            </author>
            <author initials="A." surname="Clemm" fullname="A. Clemm">
              <organization/>
            </author>
            <author initials="S." surname="Dellsperger" fullname="S. Dellsperger">
              <organization/>
            </author>
            <author initials="R." surname="Furrer" fullname="R. Furrer">
              <organization/>
            </author>
            <date year="2024" month="June"/>
          </front>
          <seriesInfo name="IEEE 10th International Conference on Network Softwarization (NetSoft)" value=""/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9VcbXMbOXL+zl+Bsj9EqiVZsta7ayt1V6e17Dun1i9lyZVK
pZIUOAOSOM8MmMGMKK69+e15uhvAYEhK533Jh+jqdqXBDNDo16cbjZ3NZpPC
lbZZXai+W86eTSad7SpzoS5Xq9asdGddo25aXRj1bsN/LF2rXjczb7sej0zL
r/ipuixr21jfyYOp0k2p3mjbdKbRDT4/ef3u8s3pRC8Wrbm9UNbpeqaxyKR0
RaNrLFm2etnNiru7md1s6hm9QS/Mzs4nW9D3+v37NxO7aS9U1/a+Oz87e46R
Qndm5drdhfJdOZn4Duv+l65cgwl3xk829kL9e+eKqfKu7VqzBKl+V8svhatr
03T+PyYT3Xdr115MlJrh//xjGw8+zNWLytR1fCikXlbmDguZdjzoWtB5vas3
rjPFOj41tbbVhar6cmtXfynogznePFjqp7l6Y7qfV6YdL/aT7ltQuT/Ii73z
nS/WW2N/Bi2vdLFeu2KNJ31l1Ey9u77ZJ0Lmmtcy11+c7+agdNK4tobgbg1x
4MOrF8+fPP/hYjKxzXJv4Bn4Hn/94fnz+Pq359+nX394Fn99+oyfvp5dzTcG
mjHb6G49M41pV7uZhmjCoCk+mbablaZrTDdbVYsljbw13bVbQtDnTy94G0E1
H924rW5Lr66hBtAwvcBm8fLWtZ9Ykz82t8ZW+FW95KXUy+XSFtY0xU7drFvX
r9bqb27DKvoeFOXjr5vSQqdc6yEU9cLVm74Da8P0fv6IKRm0hX6SGIPAPszV
j7CEJKr98T2d2h++nqsrU1UexrW6dw6s8apv2zBewgou1PlT9S99YxRxjB97
01rjSYgwn5cvX6onZ9jta9hk27CZ6gpbbJYGOgEThXWHfSpiPJhsfxYPcBJk
caoSGZPZbKb0ggy+6CaTm7VRm77dOI95lqpbW69qUzuFf3dOlcYXrV0YpVVj
tsqJL+l2GxMdyvVvcyhzBZFijXxGXVVuy8vq4MWMopeJTVqRc1gxHbJV0knM
Eh2eIcEXMFZQ1jcFE6N8X6yVxpTYpe9rEHMLQldmqojGmp5gF7W+o99p/1qt
YDONrLjRLWQGpmOZCfOttmVZmcnkMQmjdWXP6xAXI9s2rSNe+j+cYerz52Df
v/zCzAu8Sfv/f8TKN7rZKb3ZVGSyPDvttjWwvZLMtzMwMzieXSC3aJ0njhKd
SrdGNa5DXFA10TT+1Gh+VNpbW/Ywk8aV5p/8MONULfoOLM74AiZtiN1YoHaY
fO0qSMMWamOLDm6XOIOJ73S9qdhIRl8Xrq9KxRYCtqgTknJ4dxqZRR9tNJxl
p8otXAQ8Yg0mm7sNGTpkXI73eDrlNYTBR6aMI8NkD86Fz3WUUi6k8cRs/ffO
CcUioa3J/cr09DItMA3qtLUQDj0klqvXV2q7hlz4iblDBMeEWz3aNDmBdxhv
93VBdM9nYaJJYWIa5s2JP+VVCt0uXDNjwwHM2YkSis4QN7YQLM1kSjYMiKwk
jQRjiGeeWG4bhA22mpygbq2hHF1n6g0PMisRudXGVVXPRodRuMm+Y2LxCoJA
YRGcMsIBfzTFqzl7YXa8OgNrufUGJyK2kFyLLkvoOfkW5jLvg4VGvjsnGCt8
0MxXUN5AQ6vKwIpBQmYYgzdItgkWdGJALELyQ5AW4BdTvzY1u7Bl3/LcILIA
OSySPU80eJ9Na8J7+0YNMbmxJWlRWTYT8Ao6Ln5UvFMCtqAlp5h1b9BFILLO
6JIYU0NNql2+fdoDKfqSvqRvlo4opSFd3uqmg1F5wKdv1OtOfTJmE7WcafIk
8gL8BVbtYvzSt85CDtgkJF+P3SRk6O0CiEZ0UaYhCyggu0CPbdWbm4/Ma5Ko
cBjGTfhWFIOGWqMh+HqB7UAlCi3BmrYOQQQhdmvPps5KbV0bWSVux1R654mw
SMWqdVuajHcVA0IIBCqwoDWIcEHfbl3V17wsrycGJOphynn6xC1uLUeQqKP0
ZuGAeCqSMX8bv8JGXb3vrJnIhSGCmEVOnCjkrZaQFZs/6XQNJcAU7HUGVWQ+
AxzDF5T7GicBFIgXATRQ6+2qITOFQMHafLu6dj1CAk03TM6OYORAkK+oxTiW
IU+xcEp2uRtEXJpb7GhDQmV5lmZTuR39OXDOsKcjwRhN0DUGZ/JnVWVX5DKn
g35p9ik6RGeXGZIPLAI01+xA4DXg+kA0hU7RPohsMrnHpEqHKVrz371tOarV
MOfj/DgJ1Ei4aiEKTAGn5xK6YV9ashJogQ0cjER81rPfC+8K3AwOeQhYp8kp
IfZMA120uHdQCcxtAyDO6Cp2yNZ8NFGy0rALuJXSwP6D+PSWOII9CcPWzgUx
J2CKOf7VkDpaSFDkz6Npoq3FtDRVUZiNuH/wvKZYSVpgkh37PcErX0DiMFQv
BvdY/QjLhFX2DfLhDOzhmyU4EpBXAX4RxexxoQccrYO/Ke2SU4JORtmaAlQc
HJ03rDJgpO2I8zwxRZDWkfYFp19Bczw4vqWJd6w4rOMxJrEj7BDXEy1Z4QGq
xY/Ap6Urei/w4VGFoElWX7qaZn80Jbplczwr75mSUwK4cQJCep1GQtUF56hz
HjqhZVW5BYU0TpBMRz7CQmG2DM0AJ/o2VxRy4bZMGpp7bEY2wY3cULVC/Ujy
0JSOTTl7xKrB0NPOybmwXrMMkLe1DAHcYtn7gp0eb1iAKghgo3B9R0SQ3XWW
xcRyoj8jEosOgLUO2AOb9okvrYGoW3GvgfhHNDa74sUezaFSQK3ZI9m37xg0
8LtwOYXe+L4SF8D6AqnIWGmOjZF6yDgsgFDWMEKyJMQchfnq9V+5FjRjxSKZ
Tib/k35SPvrrfl5y6MAOfsP3A+I5gXHPT38jCfTzn7/j2y+Tj8jv+ddvZuHn
m6/8kx99M4kxXH15KRKcfZGpqeRHUjn+55UJL0/izH/+EuSrvvwJP3/+ot4S
8rvvz/Qyvhw48CW8pOKql+F5+OePoz/Ty8MEv5oN8meuTZ8v1OOxwknV6U+P
PvAf0VZFW38R+E3vBWPzJoAPy/hD3KVAQXrz5chQeAuutQAoCeqIP858IIV0
OJ1sNC/NhqJsQDcBpJF7E8+1j5Uj3kgxvtzPwtgyN25DNAaSltZQ0I95GWAI
Impn4QFvddWzz4n7C3oiO7OcCrHnEExSSj4gadCAMhgV0kzEQ0t+ZZun7ikf
HBB+CB2y3anqN6WOuHyUC0nW7xlqJXBJdF6ZAzkIYHhADiyIP4xq5jMTHoHi
A3QTwuwXHpDFMMAU4Dv+jgIiB5CYMgKn7KYhCY7MSQTvUdZ5Uy1zGKD7O+Qb
OlVOfISmBExOzHw1T+k5aRs4N6VygDj2LLVAbHGtP43Q5B79nd0gW8X4Y/UO
2dqtNdtQCosgI4cuTFDQyWWIlvfZxU2ol9WaAPJP9hOI4qTzoQ/8NFhyvhKg
PRlODTZwYGIg2vT1ApMRP0nxOaQAPnYOuaKPecIPz7jQ9iqvkejsA3dL9Ly/
/T4Al/OzM4C1NWcvpjkANlRU5wnF98jmokgf5EO+HXtvlOUjFwGts3XZco6T
h9uzI6HoyZFn50eefUufP8HQt+qp+k59r35Qz9TzX/Ns8s3sd/5v8iVS8xaJ
ioc1mhm0ePj5ol5VeuVVfO8DVKG9BZ/i+B9JQ/hhuV2RfN5T/nTAuC9DUdW1
/0c05D9DCeb+nz+chkvyOTPWUvLIY6lENvDBzQvOIf8gGu6L/nuGEHHAgyb2
iq0x4oLOdQiSlWlWiAW/wUKX9o4CdKeefK8cTBUe/wRIvpxppPGN1D1v2FMN
L1CCrtZG09lkOr2jrD7z7fuRJgSmIbcTEi44XOZWcoGFZgvEd2QcyF/wWhvq
2Bzl06tHM7LRkcPI9rDViDhKqoJwqfcgpZDzjI/XN+rtuxvyxcVaNyv5gtLk
wGDOjmpTUvVolLqOlkyB8OzuDD/iD5exgstZ0JVZ6r7qZvl3jwYiQMCnhmO+
U1wSWCfoF/N1opwYE7w/E8nR5wgpDIq4YkKZKoRGySQ+GL2aquIgF1nY0q76
kLpJ9YOO8KbDW4lZwqkh3W46n+vjjDzP7JXoHdV1Nl2KrGl99orqxBsuY7jt
Kde+2FVeqKesFaw2RI2VQ1QTwr9sbkvVdoiVbNdwyY2KJaEcHkp0qcb7gKWM
K7VU+qfDLdgN0ceYAZCwcam+PCqOF8jh94u9ci5zoDchX44EM5jl/aiy58LR
uFp4lGSeYtOaW2Y5sYgqlUfxKtetqSolR1AsO08VbBYaUnSghYaBHG8UzHpC
mBR7asnW8fdSF1Qj5qOo1vVUBFw713FhHUvryrvxtCM0eMT7DvIM8DYMzNme
jljo8dklnGKan03rsHniC6Gf2oJ5UhpjTTgmg4z9rSmMvTVZcR+eRdKczPxl
MTnba2a04jGDgLWQa0w6woLLqo1JdLzQP8fTgOkgZWZUdASYizoS2HnMoIJ9
E3zTQdVsmcgL7kZ6CMSQ1JOLPMzz4WS/kRp3/to5tTikkWMnMPnb347fTgad
v/MUCyfvxEpOxh2RDw2qewo9x2T+gKgPSz4yAeKZC4d8Qc6lTCYV9jE8upB6
rKhnCkVZdpD4IFL8B2lvDBLIsqJAaT8hEN2z77m6dy+Zx7WUdryAy20plQIR
/A33U3HOk3LC1szosKsQ2jiHKlop+nK1uRgdy9MBTYM8UCvyPpXJNmz9aJd0
GE1nsOTjCrgRciCUFh5j1T6LQtU0MVgiLZtf29kC3GgV3L6chPOQSEzS7EGR
g7ieZTFiT2i5i46dAvuik6oxi8kHPftDpEVbzKU1tleddnHUaq/p9JuJuVBn
iyen4fEbiDV7fJae67vR8zRwGY/o80GMZnw0gY3fnmd8pGjOFfa9SkAUxMAr
Or+Qqo39+SGUNQXpK+rQgt7hJT6CohOtoDuHZY+vNLjIWRG/D6WPUk2wCJ/K
DAUO8Sub5A5iSMy0JK9rHBHs3nnGPXVodbKh803GHRIPaCR7zzWn8RDzMDoG
cZw/PSYOPYTK417liCPdi7OKPp5cj7nipYlnvN3p1+73H29XSBXZjB26FP4y
EKBev1KXb6/Uu7c//Rv9TieYIQYP5lMQZJGQSonJVCLM1noj50GH/jLoazQw
QQY5toscFAnauZlPQ5Wy9Z30mxAc4P6HWICiTyOSKPfQX2hpC0vldiTfhX2R
SePBm1jjkras2AxD6IxKVbfUKBDbYrJF22QAX4e58OmaW/L40AvsFwPMWmEe
XFkWoS6ZwJYxHSeBq8xCTjWMoNs76lcCb470+JCPT+nJwpCRd8L4SHkIF8Gw
56dKGAvjSSl7PEnNQoHPjYa6gpjQbMss61RnC/Y9kqD4HN8XhMaXfQVGBGhu
yqOwPIjiq8HMExH5UTd18rAp/g4rTAhgsArSfUb9oj5DKYTjvABmPpaHX/ru
u2noMzjY2PAdqDjjvdGQIEF18kiPoeCj09CBQ1nMkbad+7IfBgKPH6sr64ue
8Z8ULbO6bjoh5kP42DlmqJ2CjtFtEU6SN85yztoTM6g9hndW6x271X7xd8OV
zG7I+sq0aMAj14KUqBuo96pGZm83OXKKZYL7ajNDL5JAr6FdsjmAUjnsku6e
9DF1AwUnmRdueQLftT13CkrYlYoHXpA6EDXYzAPyTZmez+QgR0WU5fEJud8z
nYO+hqENJURreJJGMv8ckOW9XHPKBLImFQjSfIq5e8ipEmsZqXJ9aDybsEY6
HuLqNOcuazw4+i1RNrwSDi9j48thEpRQZhHV8WNT7R0BjMv+B21soUWUms+Q
CzVdxMDkvjbOc2gjDB+qdgMSDrBgqJMdakJIyai/NXbqDLLKtfKeHJ97X7rQ
FzaN6A5cZP0cVvbq+m/vPv50RRKWcEJi7ztLSJB24tWTc+ru4b748/OpnF0J
k3iY/QY8RbAQ7ck+pW9i+SDjaXHL3YDc7MJWjAARjytjY4Ik3q4NKx/tKFwY
bjqJ7ZDS8ydHsdTSxRmt5HBSG6McUpoo+bQxtnY0qZwlQXxcWXl9+fYSwl5R
E/VO+qyP0bKNrbo2NG/HTKtiMco2KbMTD8D4MQD8AVtI1Sl24IbjJaO9JTsw
LWfAXC3irjbORaQFeEHRMuvOrWK/WwBGCKJFCLaX1FTI8QVzeJt3SR0EUaLA
g5yhrYW4d6wZSnj86tW1suEg8WBz0lnC2hgawMrkhsk/6MY4eGGoY65sBxYp
Ckc9Qy3rLh8rHhFvFEiD7CzU2NgPUrMOMy5k0MtQLxJ+cUFSw+EynbFTtIzN
QKE0eLPXgEndZY6axtmYscmS4QZkFLsI79mM9G1FCJW5XVBpqGbPHeK5sdOO
kzc9nM9nrKScftRrTOKk7wN89eaWUzpdhbsftya6FmqSG55OH1oxawEYG844
fInjHJMnrieUO7gLU/y3EKEbYdqIkANXH4NlauKURkSGZaYJ3Nf77WvZDujg
lWMUcYSOYol2UYm12xKLoihJSHS7xVU9XO2qh/HD+0tIEnOB8bQ9XxkKScgh
uUGlYtps7qBsce9IPEID92P1EXJ6QZodj3Rj+hRvzfjRWfNgCKkAerT4PLq2
FxxM1nyX1AxxuOdbI5J/YXpQxlcr+BoD97VlxicTDVWhYNhXJnZQhJ62cM1L
GnZLRW0RtvD7LcLhhlYcjW+DrKzjnZuS1Zq8E5+Jp7526cfXOzkC6aSbHoGs
C6CanZ60CYS9HLsKEBoaPn++96LaL7+cxhLSvRweInvy4rEJlVkYt7gYwGPU
DEqBuO1fis/3pDmk3oSAU383NSjnMJyskss0Qt1iJxNT3zoDCTrlGPWSppta
qdtglEWVpqYu9ZYl8vlzdh9PuvCAukYIi6YDgRXHfYrQlhWttHrVSEcsucC9
swm2KIGOfEvJet+LaksuUMEXtDvxYe2tpTe4c75gB/auGQLDELA5QLTkBYee
/Sx+552a2TWVrLV+dH/h6E5ITcn4hdy5erfMy6LxLhFXwtbDBZGM6yZL3SPX
8tAzNlHh844iLhmmHAI2+ZK1Xa0pMxeF6iukmeRcPyb387XaG1geGn8WpHFd
6CgNS0Vqo0IKlost+sxxkfRabJWP9Agd0X3GzJHJ4TPncxyzsysjgm3k6HwX
LyXU0qsepcBz0mEpWbZZwhelNvh8m8fvTIUVDpzMUY8S3gpVzY5AXm3oJkfQ
yIra8oHM/i7iHLmxoCgg7D2HFq4DDKuGKWJGS7OGL5LnvHcV5gDtaVa6oq8l
Pwk3SFgA3DW91wYsZbm67pEvEFXX3P6+wWea60Dhm+Yh65CqGCUg+HcTk1ig
Ao6XUp9FTOQp+GPJLOGQyDcbuVubea44sXjgw9vA3DbwGzQZuLOgfjmKu3wD
ZkjbMwpZDamaHYx2mhQbEScktyuXMqSsA9x3fLXHhSpbrvtR7Vnpg857WSVd
U2n1NrMBKZeoa1P0LQHNF6P28snkEvoPfGcJOIuR7AF4BsHZ9TK4w3Don+0a
GyR8x3e4SHtal51ymIBIke/G6zhyI5V9S219RVei9q6IUVcdVXQJXH0NhZRN
6nSITTHxU4DMEvW4U3/cCpCdkcP5hRIPt8ojJdFtNh1chEkH9aYM2yWS6b0K
qR30ERPRzpxcuuIIOD1IRn1yaabxfZsubZCax3eF4ICI+L9KEE7vYuGATASe
Ddwpg3g5xdwXbcg7+aBDwPPNj1fUNdJzNYhBZEAGHK6juXMFLHwnENPT1RHr
1zE71+N09jI/zhoqlSlwDmessfhANL+I8ASf8bmwBi4IV9yn/B8ZQF5H6Bkq
ld1cj0MfDJgol9XlEX7+F2A1O3J5QgAA

-->

</rfc>
