<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-elzahr-flow-carbon-trace-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Flow Carbon Trace">Flow-Level Carbon Emissions Tracing for Packet Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-elzahr-flow-carbon-trace-00"/>
    <author initials="S." surname="El-Zahr" fullname="Sawsan El-Zahr">
      <organization>University of Oxford</organization>
      <address>
        <email>sawsan.elzahr@some.ox.ac.uk</email>
      </address>
    </author>
    <author initials="E." surname="Schooler" fullname="Eve Schooler">
      <organization>University of Oxford</organization>
      <address>
        <email>eve.schooler@eng.ox.ac.uk</email>
      </address>
    </author>
    <author initials="R." surname="Soulé" fullname="Robert Soulé">
      <organization>Yale University</organization>
      <address>
        <email>robert.soule@yale.edu</email>
      </address>
    </author>
    <author initials="N." surname="Zilberman" fullname="Noa Zilberman">
      <organization>University of Oxford</organization>
      <address>
        <email>noa.zilberman@eng.ox.ac.uk</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Operations and Management</area>
    <workgroup>Sustain Research Group</workgroup>
    <keyword>sustainability</keyword>
    <keyword>carbon</keyword>
    <keyword>energy</keyword>
    <keyword>telemetry</keyword>
    <abstract>
      <?line 48?>

<t>This document defines a method to derive per-flow energy consumption and associated carbon emissions without requiring inline power instrumentation for network equipment.
Although energy consumption is commonly monitored at the device, network, or facility level, fine-grained attribution of energy consumption and carbon emissions to individual traffic flows remains an open research problem.
The central contribution is the formulation of a flow-level carbon accounting model that transforms counter-based traffic measurements into energy usage estimates and subsequently into carbon emissions using time- and location-dependent carbon intensity data.</t>
      <t>The specification defines a device power model, a flow-level energy derivation, and idle-energy attribution methods for flows. This document further highlights how different definitions of carbon attribution can lead to significant variability in attributed carbon to flows, emphasizing the urgent need to standardize carbon accounting definitions and methodologies.
In addition to the modeling framework, the document defines mechanisms for telemetry collection and deployment models for end-to-end flow tracing to support operational use cases. These elements complement the core contribution by enabling implementation and observability.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-elzahr-flow-carbon-trace/"/>.
      </t>
      <t>
      </t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Network infrastructure contributes a non-negligible portion of the energy consumption and carbon footprint of modern digital services [ICT-Footprint-2023]. While energy consumption is commonly measured at the device, network, or facility level, attributing energy consumption and carbon emissions to individual traffic flows remains an open problem.</t>
      <t>Flow-level carbon attribution enables emerging use cases such as carbon-aware traffic engineering, sustainability reporting for digital services, carbon-aware service-level agreements, carbon accounting across interdomains, and application-specific carbon optimization. However, existing approaches do not provide a consistent method to derive and attribute emissions at the granularity of individual traffic flows.</t>
      <t>This document defines a framework for deriving, attributing, and reporting flow-level carbon emissions in packet networks. The framework consists of three independent stages: device power modeling, flow-level energy attribution, and end-to-end carbon trace construction.</t>
      <t>Future standardization is expected to define common power modeling methods, attributional emissions definitions and accounting rules, and standardized mechanisms for tracing, collecting, and transporting carbon-related information. This document presents one framework and corresponding mechanisms as a basis for standardization efforts, while recognizing that alternative methods and future extensions may also satisfy the framework objectives.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 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="terminology">
        <name>Terminology</name>
        <dl>
          <dt>Device Idle Power:</dt>
          <dd>
            <t>Traffic-independent power consumption of the device.</t>
          </dd>
          <dt>Device Dynamic Power:</dt>
          <dd>
            <t>Traffic-dependent power consumption of the device.</t>
          </dd>
          <dt>Carbon Intensity (CI):</dt>
          <dd>
            <t>Mass of CO2 emitted per unit of electrical energy consumed. This is a measure of how green the energy consumed is in a given geographic region. Lower values indicate greener electricity consumed.</t>
          </dd>
          <dt>Consequential Emissions:</dt>
          <dd>
            <t>Emissions directly caused by forwarding traffic.</t>
          </dd>
          <dt>Attributional Emissions:</dt>
          <dd>
            <t>A share of non-traffic-dependent emissions attributed to traffic (for example, the idle power of equipment).</t>
          </dd>
          <dt>Flow:</dt>
          <dd>
            <t>A sequence of packets identified by a common set of packet header fields, including the same source and destination fields.</t>
          </dd>
          <dt>Flow Carbon Trace:</dt>
          <dd>
            <t>The cumulative carbon emissions (both consequential and attributional) associated with a flow across all traversed devices.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Packet forwarding devices (e.g., routers and switches) process large numbers of traffic flows concurrently. These devices do not provide native mechanisms to measure energy consumption or carbon emissions at the granularity of individual flows.</t>
      <t>While external power meters can measure total device power consumption, they do not provide any direct decomposition of that power across traffic flows. In addition, deploying power meters across all devices and locations is often impractical due to cost, operational complexity, and installation constraints in large-scale networks. In current networks, some have implemented smart power distribution units (PDUs) and some have not. Furthermore, the accuracy of built-in power measurements in devices is often insufficiently accurate for flow-level accounting purposes.</t>
      <t>As a result, per-flow energy consumption and carbon emissions cannot be obtained through direct measurement. Instead, they must be derived from observable network telemetry and suitable accounting methodologies.</t>
      <t>This document defines a framework for deriving, attributing, and reporting flow-level carbon emissions in packet networks.</t>
    </section>
    <section anchor="framework-overview">
      <name>Framework Overview</name>
      <t>Flow-level carbon emissions cannot be measured directly. Network devices consume electrical energy, multiple flows share the same infrastructure, and the resulting carbon emissions depend on both energy consumption and the carbon intensity of the energy source.</t>
      <t>This document defines a framework that derives flow-level carbon emissions from network telemetry through three logical stages:</t>
      <sourcecode type="artwork"><![CDATA[
Network Traffic Statistics
        ↓
Device Power Model
        ↓
Energy Attribution at the Flow-Level
        ↓
Carbon Trace Construction along the Full Path of the Flow
]]></sourcecode>
      <t>The first stage estimates device power consumption from observable traffic statistics without requiring power instrumentation in operational networks. Section 5 defines the power model and introduces a benchmarking methodology used to derive model parameters.</t>
      <t>The second stage attributes device energy consumption to the individual flows traversing the device. This produces flow-level energy metrics. Section 6 describes the different types of energy-usage that can be allocated to flows and their respective scales.</t>
      <t>The third stage converts flow-level energy into carbon emissions, taking the regional carbon intensity into account (Section 7), and constructs an end-to-end carbon trace for the flow as it traverses the network (Section 8).</t>
      <t>A key design principle of this framework is modularity. These three stages are independent and can evolve separately over time.</t>
      <t>A deployment may adopt a new device power model without changing the flow attribution methodology or the carbon trace construction mechanisms. Likewise, a new flow attribution methodology can be introduced without changing the underlying power model or the tracing mechanisms. Similarly, new carbon trace formats or transport mechanisms can be deployed while continuing to use existing power models and attribution methods.</t>
      <t>The purpose of this document is therefore not to define a single monolithic algorithm. Instead, it defines a framework composed of interoperable building blocks and well-defined interfaces between them. This modular design allows future improvements in device modeling, flow attribution, and carbon tracing to be adopted independently while maintaining interoperability.</t>
      <t>Sections 5-8 describe each stage of the framework and standardize the packet formats and information exchanged between them.</t>
    </section>
    <section anchor="device-power-model">
      <name>Device Power Model</name>
      <t>The first stage of the framework estimates device power consumption from observable network traffic statistics.
While total device power may be measured through external instrumentation, such measurements are often unavailable in operational networks.
To address this limitation, the framework uses a device power model that maps network traffic statistics to device power consumption, thereby eliminating the need for power meters installed for network equipment.</t>
      <t>Conceptually, this stage performs the following transformation:</t>
      <sourcecode type="artwork"><![CDATA[
Network Traffic Statistics
        ↓
Device Power Consumption
]]></sourcecode>
      <t>The output of this stage is an estimate of the instantaneous power consumption of the device. This output serves as the input to the Flow Energy Attribution stage described in Section 6.
The model presented in this section provides one approach for deriving device power consumption from commonly available traffic statistics.</t>
      <section anchor="high-level-power-model">
        <name>High-Level Power Model</name>
        <t>In its most general form, the device total power consumption is a function that can be expressed as:</t>
        <t><tt>text
P = f(X1, X2, ..., Xn)
</tt></t>
        <t>where P denotes device power consumption and X1 ... Xn represent observable traffic statistics.</t>
        <t>The choice of the function f raises an important question: how complex does the power model need to be?</t>
        <t>A sufficiently complex model could incorporate a large number of traffic variables, device-specific characteristics, and non-linear interactions between them. While such models may improve accuracy, they also increase deployment complexity and reduce interoperability.</t>
        <t>The goal of this framework is not to identify the most accurate model possible, but rather to identify a model that provides sufficient accuracy while relying on measurements that are commonly available in operational networks.</t>
        <t>An experimental evaluation in [SIGMETRICS25] demonstrates that, for the devices studied, power consumption can be modeled with high accuracy using a simple linear relationship between device power and a small set of traffic statistics.</t>
        <sourcecode type="text"><![CDATA[
P [W] = P_idle [W] + α_p [W/bps] · T [bps] + β_p [W/pps] · R [pps]
]]></sourcecode>
        <t>where P_idle captures the traffic-independent baseline power consumption, T and R are the throughput and packet rate, and the coefficients α_p and β_p represent the linear contribution of throughput and packet rate, respectively, to the overall power consumption. The brackets represent the units of these variables.</t>
        <t>The next subsections describe a benchmarking methodology for deriving these parameters from experimental measurements.</t>
      </section>
      <section anchor="required-inputs-for-compliant-implementation">
        <name>Required Inputs for Compliant Implementation</name>
        <t>A compliant implementation of the proposed benchmark relies on observable traffic counters that are commonly available on packet forwarding devices. Specifically, the model requires access to the total throughput and total packet rate processed by the device over a given measurement interval.</t>
        <t>These quantities can be derived from device counters and represent aggregate traffic handled by the forwarding plane. The throughput is expressed in bits per second, while the packet rate is expressed in packets per second.</t>
      </section>
      <section anchor="model-parameters">
        <name>Model Parameters</name>
        <t>The device power model is defined by three parameters: P_idle, α_p, and β_p. These parameters can be obtained through the benchmarking methodology described below and provided by any compliant implementation.</t>
        <t>P_idle represents the baseline power consumption of the device in the absence of traffic and reflects the contribution of always-on components such as power supplies, cooling systems, and control-plane elements. The coefficients α_p and β_p quantify the incremental power associated with processing traffic, capturing the effects of throughput and packet rate, respectively.</t>
        <t>Implementations can expose these parameters in a programmatically accessible manner, allowing them to be consumed by monitoring systems, telemetry pipelines, or external controllers. In cases where devices support multiple operating modes (e.g., different port configurations or power states), implementations can provide multiple parameter sets corresponding to these modes.
Section 8 describes how these parameters can be incorporated into carbon tracing packets.</t>
      </section>
      <section anchor="benchmarking-methodology-for-power-measurements">
        <name>Benchmarking Methodology for Power Measurements</name>
        <t>To derive a device power model that is reproducible and portable across implementations, a standardized benchmarking methodology should be followed. In this document, a methodology for benchmarking router power modeling is proposed based on the work in [SIGMETRICS25]. The objective of this benchmark is to characterize how the power consumption of a packet forwarding device varies as a function of observable traffic properties. Rather than relying on instantaneous power instrumentation in operational deployments, this approach enables a one-time characterization of the device that can later be reused in operation.</t>
        <t>The benchmarking process consists of subjecting the device under test (DUT) to controlled traffic conditions while measuring its power consumption. Traffic is generated in a way that allows independent variation of throughput and packet rate. This typically requires the use of a traffic generator capable of producing packet streams with configurable packet sizes and transmission rates. Since packet rate is inversely related to packet size for a given throughput, varying packet sizes is essential to decouple the effects of throughput and packet processing on power consumption.</t>
        <t>The DUT can be configured in a stable forwarding mode, ensuring that no additional control-plane or background processes significantly affect power consumption during measurements. To accurately capture the full operational range of the device, it is recommended to allow the traffic generation setup to exercise the device from idle conditions up to near-maximum capacity. This may require multi-port traffic generation or loopback configurations that ensure the switching fabric is fully utilized.</t>
        <t>Power measurements can be collected using either external measurement equipment (such as instrumented or smart power distribution units) or reliable embedded sensors, provided that the measurement accuracy is sufficient to capture variations in dynamic power (i.e., the traffic-dependent power consumption of the device). For each measurement point, the total device power is recorded together with the corresponding total throughput and packet rate observed on the device.</t>
        <t>The collected measurements are then used to derive a parametric power model through regression analysis. Implementations can fit a model of the following form:</t>
        <sourcecode type="text"><![CDATA[
P [W] = P_idle [W] + α_p [W/bps] · T [bps] + β_p [W/pps] · R [pps]
]]></sourcecode>
        <t>As shown in [SIGMETRICS25], linear regression can be used as the baseline method, as it provides both high accuracy and implementation simplicity. This benchmark model was validated against independent traffic traces, particularly those containing mixed packet sizes, to ensure that it generalizes beyond the controlled benchmark inputs. Moreover, it was demonstrated that both throughput and packet rate are essential to achieve a high accuracy for the power model. Using throughput alone or packet rate alone to model power can reduce accuracy significantly under certain scenarios, e.g., to 53% and 16%, respectively [SIGMETRICS25].</t>
        <t>The parameters obtained from this process are specific to the device model and its configuration, including hardware characteristics and software settings or firmware versions. As such, these parameters are treated as device-specific constants. Implementations can make these parameters accessible through programmatic interfaces or configuration mechanisms, enabling their use in downstream energy and carbon computations.</t>
        <t>An example implementation of this benchmark is provided in [SIGMETRICS-GithubRepo].</t>
      </section>
    </section>
    <section anchor="flow-energy-derivation">
      <name>Flow Energy Derivation</name>
      <t>The device power model provides an estimate of the total power consumption of a device based on aggregate traffic. To enable flow-level accounting, this total power can be decomposed into contributions attributable to individual traffic flows.</t>
      <t>A key distinction arises between the idle portion of the power, which is independent of traffic, and the dynamic portion, which is directly influenced by traffic characteristics. 
The dynamic power component can be directly allocated to individual flows, as it represents the additional energy required to process and forward traffic. This component is therefore referred to as consequential energy.</t>
      <t>The idle power component requires a different treatment. Although a router consumes this baseline power regardless of the traffic it carries, it must remain operational and ready to process flows whenever they arrive. Consequently, individual flows share responsibility for maintaining the availability of the network infrastructure. For this reason, a portion of the idle energy consumption can also be attributed to individual flows. This component is referred to as attributional energy. For an end-to-end flow that traverses many hops, the assignment of attributional energy should follow a previously agreed-upon definition as will be explained in the following sections.</t>
      <section anchor="consequential-energy-of-flows">
        <name>Consequential Energy of Flows</name>
        <t>Consequential energy captures the additional energy consumed by a router as a direct consequence of processing a particular traffic flow.
The derivation of flow-level consequential energy builds on the linearity of the device power model. By considering the cumulative traffic associated with a flow, the energy attributable to that flow can be expressed directly in terms of its total number of bytes and packets. Specifically, the consequential energy of a flow E_f can be computed as:</t>
        <artwork><![CDATA[
E_f [J] = α_e [J/B] · bytes_f [B] + β_e [J/Pkt] · packets_f [Pkt]
]]></artwork>
        <t>where bytes_f and packets_f represent the cumulative byte and packet counts of the flow, respectively. The coefficients α_e and β_e are derived from the device-level parameters α_p and β_p multiplied by time, with α_e corresponding to α_p scaled to units of energy per byte, and β_e corresponding directly to energy per packet. Specifically:</t>
        <artwork><![CDATA[
α_e [J/B or Ws/B] = 8 * α_p [W / bps]
]]></artwork>
        <t>and,</t>
        <artwork><![CDATA[
β_e [J/Pkt or Ws/Pkt]= β_p [W/pps]
]]></artwork>
        <t>An important property of this formulation is that it does not depend on the duration of the flow. Instead, it depends solely on the total volume of traffic transmitted. As a result, the computed energy is invariant to how the traffic is temporally transmitted. For example, transmitting a given amount of data at a high rate over a short period yields the same consequential energy as transmitting it at a lower rate over a longer period.</t>
        <t>This property ensures consistency and fairness in energy attribution, as flows with identical traffic characteristics will be assigned identical consequential energy regardless of their timing behavior.</t>
      </section>
      <section anchor="attributional-energy-of-flows">
        <name>Attributional Energy of Flows</name>
        <t>In contrast to dynamic power, idle power represents the baseline energy consumption required to keep the device operational. This component is independent of the presence or characteristics of individual traffic flows and therefore is not typically directly assigned to a specific flow. Instead, it is attributed according to a chosen accounting methodology.</t>
        <t>Idle energy is therefore considered attributional, and different attribution methods may lead to significantly different results. Implementations need to support at least one method for attributing idle energy to flows, and the corresponding exported energy/carbon records per flow should explicitly indicate the chosen method as will be explained in Section 8. 
This attribution is particularly important in core and backbone networks, where idle power often represents a substantial fraction of total device power consumption. Since this energy is consumed regardless of traffic volume, an explicit attribution methodology is required to determine which flows, services, or users are assigned responsibility for this shared infrastructure cost.</t>
        <t>One possible approach is to exclude idle energy entirely from flow-level accounting, assigning only consequential energy to flows. Alternatively, idle energy may be divided equally among all active flows within a given measurement interval, assigning each flow an equal share regardless of its traffic volume.
More refined approaches allocate idle energy proportionally based on flow characteristics. For example, flows may be assigned a share of idle energy proportional to their byte volume, resulting in larger flows receiving a greater share. Similarly, attribution based on packet volume assigns a higher share to flows with higher packet counts.
The expectation is that every router in the path of a flow should use the same option, otherwise, the resulting estimate may be inconsistent or inaccurate.</t>
        <t>The four definitions can be summarized as:</t>
        <ul spacing="normal">
          <li>
            <t>No Idle Attribution: 
Idle energy is not assigned to flows</t>
          </li>
          <li>
            <t>Equal Per-Flow Division: 
Idle energy is evenly divided among all active flows during a measurement interval.</t>
          </li>
        </ul>
        <t>In this case, the energy share attributed to each flow depends on the total number of active flows during the given time interval and on the flow duration. Consequently, the longer a flow remains active on a device, the greater its overall attributed energy consumption. The attributional energy per flow Eb_f in this case is:</t>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] / Number of Flows) × Flow Duration [s]
]]></artwork>
        <t>Variations in the number of active flows are accounted for by recomputing the metric for each measurement interval. When exported through telemetry, the reported value is (Idle Power / Number of Flows), expressed in Watts (or equivalently joules per second). The energy attributed to a flow is obtained by multiplying this value by the duration of the flow.</t>
        <t>The choice of the measurement interval influences the stability of the metric. Short intervals capture rapid changes in the number of active flows but may produce significant fluctuations in the attributed value. Longer intervals provide a more stable estimate but may smooth over short-term variations in flow activity. Implementations require the selection of an interval that balances responsiveness and stability according to operational requirements.</t>
        <ul spacing="normal">
          <li>
            <t>Proportional to Flow Bitrate: 
Idle energy is distributed proportionally to each flow's bitrate contribution.</t>
          </li>
        </ul>
        <t>In this case, flow duration is not relevant. Instead, attribution is based on the total number of bytes associated with a flow relative to the total number of bytes across all flows. Hence, the required parameters are the total router throughput and the total number of bytes of the individual flow. The attributional energy per flow Eb_f in this case is:</t>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] / Router Throughput [bps] * 8) × Flow Number of Bytes [B]
]]></artwork>
        <t>Similarly to the previous option, the router throughput value should be updated whenever it changes significantly.
The telemetry metric in this case would be (Idle Power [W] / Router Throughput [bps] * 8) expressed in J/B and should be multiplied by the total number of bytes of the flow (Flow Number of Bytes [B]).</t>
        <ul spacing="normal">
          <li>
            <t>Proportional to Flow Packet Rate: 
Idle energy is distributed proportionally to each flow's packet-rate contribution.</t>
          </li>
        </ul>
        <t>This approach is similar to the previous case; however, attribution is based on packet counts rather than byte counts. The attributional energy per flow Eb_f in this case is:</t>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] / Router Packet Rate [pps]) × Flow Number of Packets [pkts]
]]></artwork>
        <t>The router packet rate value should be updated whenever it changes significantly.
The telemetry metric in this case would be (Idle Power [W] / Router Packet Rate [pps]) expressed in J/pkt and should be multiplied by the total number of packets of the flow (Flow Number of Packets [pkts]).</t>
        <t>In all cases, the definition of an “active flow” over a specific measurement interval should be clearly specified, and the attribution is computed over well-defined time intervals consistent with counter measurements. Implementations may also incorporate utilization-aware attribution, in which only a fraction of the idle energy---corresponding to the device’s utilization level---is distributed among flows. The proportion of idle energy variable γ is defined as:</t>
        <artwork><![CDATA[
γ = Router Throughput [bps]/ Max Capacity [bps]
]]></artwork>
        <t>This variable is added to the extended definitions as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Equal per-flow division and router utilization considered:</t>
          </li>
        </ul>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] * γ / Number of Flows) × Flow Duration [s]
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>Proportional to byte volume and router utilization considered:</t>
          </li>
        </ul>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] * γ / Router Throughput [bps] * 8) × Flow Number of Bytes [B]
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>Proportional to packet volume and router utilization considered:</t>
          </li>
        </ul>
        <artwork><![CDATA[
Eb_f [J] = (Idle Power [W] * γ / Router Packet Rate [pps]) × Flow Number of Packets [pkts]
]]></artwork>
        <t>The choice of attribution method has a significant impact on the resulting carbon footprint of flows. For example, the paper [SIGMETRICS25] shows that in a video streaming use case, attributional emissions can be up to 120 times higher based on the choice of attribution method. Depending on the chosen model, different and sometimes contradictory insights emerge: (1) When idle power is evenly divided across flows, transmitting over shorter durations leads to lower attributed emissions. (2) When idle power is attributed based on bit rate, lower bit rates yield lower emissions. (3) When packet rate is used for attribution, larger packet sizes result in lower emissions. (4) When idle power is divided without accounting for router utilization, sending flows during high-utilization periods (e.g., peak hours) reduces their carbon footprint which may incentivize sending more flows at peak.</t>
        <t>These observations highlight the ambiguity and sensitivity of attributional carbon accounting in networks. The selection of an idle power attribution model can significantly influence the calculated emissions of individual flows and may lead to divergent optimization strategies. Given this variability, it is essential that Internet Service Providers (ISPs), cloud operators, and application developers adopt a consistent and transparent definition for attributing emissions, particularly those associated with idle power.</t>
        <t>The modularity of the framework would allow for the incorporation of new/improved attributional models in the future.</t>
      </section>
    </section>
    <section anchor="carbon-emissions-computation">
      <name>Carbon Emissions Computation</name>
      <t>Carbon emissions are derived from energy consumption through the use of carbon intensity data, which represents the amount of carbon emitted per unit of electrical energy consumed. The computation of carbon emissions follows a direct proportional relationship between energy and carbon intensity.</t>
      <t>Specifically, carbon emissions are computed as:</t>
      <artwork><![CDATA[
Carbon [gCO2] = Energy [kWh] × CI [gCO2/kWh]
]]></artwork>
      <t>where Energy represents the energy consumption of the device or flow, and CI denotes the carbon intensity of the electricity used to supply that energy.</t>
      <t>To ensure correctness, implementations should ensure unit consistency in this computation. Since carbon intensity is typically expressed in grams of CO2 per kilowatt-hour, energy values expressed in Joules should be converted accordingly before applying the formula.</t>
      <t>Carbon intensity is inherently dependent on both time and location, as the energy mix used to generate electricity varies across regions and throughout the day. Therefore, carbon intensity data must be aligned with the time interval over which energy is measured and with the physical location of the device.</t>
      <t>Where possible, implementations should use real-time or near-real-time carbon intensity data obtained from reliable sources [ELECTRICITY-MAPS] [CARBON-INTENSITY-API]. In cases where such data is not available, historical averages or forecasted values may be used, provided that their source and temporal resolution are clearly documented.</t>
      <t>At the flow level, carbon emissions are computed by combining both consequential and attributional components of energy. The total carbon associated with a flow is therefore the sum of the carbon derived from its consequential energy and the carbon derived from its attributed share of idle energy.</t>
      <t>Finally, the end-to-end carbon trace of a flow is obtained by summing the carbon contributions from all devices traversed by that flow. This cumulative view provides a complete representation of the flow’s carbon footprint across the network.</t>
    </section>
    <section anchor="telemetry-and-flow-carbon-trace-collection">
      <name>Telemetry and Flow Carbon Trace Collection</name>
      <t>The computation of flow-level carbon emissions requires that per-device carbon contributions be combined across all devices traversed by a flow. While the previous sections define how carbon is computed locally at each device, this section specifies how such information is collected and propagated to construct an end-to-end Flow Carbon Trace.</t>
      <t>A fundamental challenge is that carbon contributions are generated independently at each hop, yet must be represented as a single cumulative value associated with a flow. 
It is important to distinguish between collecting carbon telemetry data and collecting the actual carbon trace of a flow. The carbon trace of a flow is easier to formulate because at each hop, the router computes the carbon contribution of a specific flow from both consequential and attributional emissions and adds them together. This represents one aggregated cumulative value. 
However, if users or applications want to adjust their operation in real-time to optimize their carbon footprint, then in-network telemetry is the right approach. In this case, cumulative telemetry data from all hops is collected and the carbon trace is computed locally after receiving the telemetry data. This means that more data needs to be sent in the telemetry packet rather than a simple single value of the total carbon of a flow.</t>
      <t>This document defines three approaches to achieve flow-level carbon tracing, reflecting different deployment models and operational trade-offs:</t>
      <ul spacing="normal">
        <li>
          <t>using in-network telemetry</t>
        </li>
        <li>
          <t>using packet-level tracing</t>
        </li>
        <li>
          <t>using ISP-level tracing</t>
        </li>
      </ul>
      <section anchor="using-in-network-telemetry">
        <name>Using In-Network Telemetry</name>
        <t>In this method, the user or application periodically sends telemetry packets through the network to estimate the carbon footprint of a given path. A new telemetry packet can be generated when carbon intensity changes (e.g., every 30-60 minutes) or when significant shifts in network utilization are expected (given a certain threshold).</t>
        <t>Each telemetry packet carries carbon metrics for both consequential and attributional emissions. These values are separately accumulated at each hop.</t>
        <t>Upon arrival, the destination reads the accumulated carbon header and returns it to the sender. Different paths yield different aggregate values. Increasing telemetry frequency improves accuracy and enables applications to adapt behavior (e.g., scheduling or rate control).</t>
        <section anchor="carbon-telemetry-header-structure">
          <name>Carbon Telemetry Header Structure</name>
          <t>Since these packets are used solely for telemetry, they do not collect or carry a per-flow carbon trace. Instead, they accumulate only the carbon model coefficients defined in the previous sections, enabling applications to adapt their operation (e.g., transmission rate, scheduling, or other parameters) according to their own characteristics and carbon-reduction objectives. The carbon telemetry header therefore provides a compact in-network telemetry structure for accumulating consequential and attributional carbon coefficients along the path of a flow.
The format is inspired by IOAM aggregation mechanisms [I-D.draft-cxx-ippm-ioamaggr-04] but reduced to the minimal set of fields required for carbon accounting.</t>
          <sourcecode type="text"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Flags    | Idle Model    |           Hop Count           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Conseq Carbon per Byte                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Conseq Carbon per Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Attributional Carbon                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></sourcecode>
          <t>Field Descriptions:</t>
          <ul spacing="normal">
            <li>
              <t>Flags (8 bits):
Flags indicate which fields in the option are active or valid. They also provide basic control information for interpretation of the telemetry data.</t>
            </li>
          </ul>
          <t>Typical flag usage includes enabling or disabling the use of consequential or attributional components and indicating whether the option has been processed by all hops.</t>
          <ul spacing="normal">
            <li>
              <t>Idle Model (8 bits):
The Idle Model field defines how idle energy is attributed to the flow. It determines the unit of the Attributional Carbon field.</t>
            </li>
          </ul>
          <t>The potential values of this field are as follows:
    - 0: no idle attribution 
    - 1: equal per-flow division
    - 2: proportional to byte volume
    - 3: proportional to packet volume
    - 4: equal per-flow division and router utilization considered
    - 5: proportional to byte volume and router utilization considered
    - 6: proportional to packet volume and router utilization considered
    - 
The interpretation of the Attributional Carbon field depends on this selection. The expectation is that every router in the path of a flow should use the same option, otherwise, the resulting estimate may not be accurate.
The 7 options discussed in this paper are included in the options, but alternatively, the community is invited to propose with additional definitions.</t>
          <ul spacing="normal">
            <li>
              <t>Hop Count (16 bits):
The Hop Count field records the number of network nodes that have contributed to the carbon accumulation. Each node increments this value when updating the telemetry data.</t>
            </li>
            <li>
              <t>Conseq Carbon per Byte (32 bits):
This field contains the accumulated consequential carbon coefficient per byte along the path. Each node adds its local contribution to this field.</t>
            </li>
          </ul>
          <t>The flow-level consequential carbon is obtained by multiplying this value by the total number of bytes in the flow.</t>
          <ul spacing="normal">
            <li>
              <t>Conseq Carbon per Packet (32 bits):
This field contains the accumulated consequential carbon coefficient per packet along the path. Each node adds its local contribution to this field.</t>
            </li>
          </ul>
          <t>The flow-level consequential carbon is obtained by multiplying this value by the total number of packets in the flow.</t>
          <ul spacing="normal">
            <li>
              <t>Attributional Carbon (32 bits):
This field contains the accumulated attributional carbon coefficient. Its unit depends on the selected Idle Model.</t>
            </li>
          </ul>
          <t>When the Idle Model is:</t>
          <artwork><![CDATA[
- equal division among flows (with or without router utilization consideration), the field represents carbon per second
- proportional to bytes (with or without router utilization consideration), the field represents carbon per byte
- proportional to packets (with or without router utilization consideration), the field represents carbon per packet
- no idle attribution, the field is zero
]]></artwork>
          <t>The final attributional carbon for a flow is obtained by multiplying this field with the corresponding flow metric (duration, bytes, or packets).</t>
        </section>
        <section anchor="computation-overview">
          <name>Computation Overview</name>
          <t>At each hop, the node does not append new information to the header. Instead, it updates the existing aggregate fields by adding its local contributions to the cumulative values already carried in the packet.
The final carbon footprint of a flow is computed at the node collecting telemetry by combining consequential and attributional components.</t>
          <t>The consequential component depends on the total number of bytes and packets in the flow, while the attributional component depends on the idle attribution model selected for the telemetry option.</t>
        </section>
      </section>
      <section anchor="using-packet-level-tracing">
        <name>Using Packet-Level Tracing</name>
        <t>This method provides higher accuracy by embedding carbon information in every packet of a flow. As with the telemetry-based approach described above, packets may carry carbon telemetry coefficients that are interpreted by the destination. Alternatively, packets may carry a directly accumulated carbon trace, in which case each node updates the cumulative carbon value carried in the packet.</t>
        <t>For the accumulated carbon trace approach, at each hop:</t>
        <ul spacing="normal">
          <li>
            <t>Consequential and attributional emissions are computed,</t>
          </li>
          <li>
            <t>Combined into a single contribution, and</t>
          </li>
          <li>
            <t>Added to the cumulative carbon field.</t>
          </li>
        </ul>
        <t>The destination aggregates results per flow and can report them periodically or upon completion. This method can be applied bidirectionally (client-to-server and server-to-client).</t>
        <t>In terms of packet structure, this method can be realized using a modification of the structure defined in the previous section where here we only need one aggregate value of carbon instead of 3 separate fields. Moreover, in cases of intradomain traffic, this method can also be realized using In-situ Operations, Administration, and Maintenance, specifically the IOAM Aggregation Trace Option [I-D.draft-cxx-ippm-ioamaggr-04], where each node updates the aggregate carbon field rather than appending per-hop data.</t>
        <t>For intradomain traffic, an example is presented next of how to encode the carbon trace data directly using the In-situ Operations, Administration, and Maintenance Aggregation Trace Option, without modifying its format.</t>
        <sourcecode type="text"><![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   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></sourcecode>
        <t>Carbon-specific field usage:</t>
        <ul spacing="normal">
          <li>
            <t>Namespace-ID: Identifies the IOAM domain. It remains unchanged along the path.</t>
          </li>
          <li>
            <t>Flags: Error indicators. If set, aggregation stops and data is forwarded unchanged.</t>
          </li>
          <li>
            <t>Reserved: Reserved by the IOAM Aggregation Trace Option specification. This field is set to zero by the sender and ignored by receivers.</t>
          </li>
          <li>
            <t>IOAM Data Param: Identifies the aggregated metric. Set to “Carbon Emissions” (combined consequential + attributional).</t>
          </li>
          <li>
            <t>Aggregator: Defines aggregation function. It should be set to Sum.</t>
          </li>
          <li>
            <t>Aggregate: Carries the cumulative carbon value. Each node adds its local contribution (consequential + attributional).</t>
          </li>
          <li>
            <t>Auxil-data Node-ID: Identifies node of interest. Used only for error reporting (per IOAM semantics).</t>
          </li>
          <li>
            <t>Hop Count: Counts nodes that successfully contributed to aggregation.</t>
          </li>
        </ul>
        <t>Each node computes:</t>
        <ul spacing="normal">
          <li>
            <t>carbon_contribution = consequential + attributional</t>
          </li>
          <li>
            <t>The contribution is added to Aggregate.</t>
          </li>
          <li>
            <t>The attribution method (one of the 7 models) can be: pre-configured within the IOAM domain, or implicitly defined by the Namespace-ID.</t>
          </li>
        </ul>
        <t>In this case, no additional fields are introduced; the IOAM Aggregation Option is used unchanged, ensuring compatibility with existing implementations and drafts.</t>
      </section>
      <section anchor="using-isp-level-tracing">
        <name>Using ISP-Level Tracing</name>
        <t>ISP-level tracing leverages existing ISP monitoring infrastructure without requiring any changes to packet headers. It supports only coarse-grained reporting intervals (e.g., daily or monthly), which limits real-time carbon-aware adaptation but remains effective for accurate carbon accounting.
Border routers and other monitoring nodes already collect traffic logs for operational and billing purposes. These nodes record information such as source and destination IPs, ports, timestamps, and volume, and forward aggregated records to a central node for analysis.</t>
        <t>A key assumption here is that the central node operates at ISP scope, meaning it only has visibility into traffic once it enters and leaves the ISP’s network. In other words, it does not assume full end-to-end visibility across multiple ISPs or external networks. Instead, it can only reconstruct the portion of each flow that traverses its own infrastructure. Depending on the deployment, this may cover either the entire flow (if both endpoints are within the ISP) or only a segment of a broader end-to-end path (if the traffic crosses multiple ISPs).</t>
        <t>For example, a streaming service---whose content caches may already be embedded within the ISP’s infrastructure---might request the ISP to estimate the carbon footprint of delivering video to users on its network. In this case, the ISP measures only the portion of traffic that traverses its own infrastructure, between ingress and egress points associated with those users.</t>
        <t>The central node estimates the paths taken by the flows and correlates them with the carbon intensity values of routers along those paths. As a result, the ISP can estimate emissions per flow, user, or cache and report them periodically (e.g., hourly, daily, or weekly). Although packet sampling can reduce accuracy, biased monitoring of selected flows can mitigate this limitation.</t>
      </section>
      <section anchor="comparison-of-approaches">
        <name>Comparison of Approaches</name>
        <t>Each of the three methods presents different trade-offs in terms of accuracy, overhead, carbon data distribution, and update frequency.</t>
        <t>In terms of <strong>accuracy</strong>, in-network telemetry may be limited by multi-path routing (e.g., ECMP), which introduces uncertainty in flow paths. Packet-level tracing is the most accurate since it captures emissions on a per-hop basis with full path visibility. ISP-level tracing achieves moderate to high accuracy depending on the quality of path estimation and sampling.</t>
        <t>With respect to <strong>packet overhead</strong>, in-network telemetry introduces minimal overhead by sending dedicated telemetry packets or occasionally attaching carbon tracing headers to flow packets. Packet-level tracing has higher overhead as every packet carries a carbon trace header. The total length of the suggested aggregate carbon header is fixed at 8 bytes.<br/>
For the range 64B-1500B for the packet size, the overhead is 0.5%-12.5%.
With an average packet size of 880B (taken from a CAIDA trace), the packet overhead would be 0.9% on average.
ISP-level tracing imposes no additional packet overhead, as it relies solely on existing ISP traffic logs. 
While increasing telemetry frequency improves accuracy, it also slightly increases traffic and associated emissions. However, this trade-off does not eliminate the need for accurate carbon reporting that is a requirement to enable carbon-aware networks.</t>
        <t>For <strong>carbon intensity data distribution</strong>, in-network telemetry and packet-level tracing require each router to have local access to up-to-date carbon intensity. In contrast, ISP-level tracing centralizes this information, requiring only the central monitoring node to maintain carbon intensity data.</t>
        <t>Finally, in terms of <strong>reporting frequency</strong>, in-network telemetry requires updates at flow initiation, when carbon intensity changes and when network load changes significantly. Packet-level tracing allows reporting at flow completion or at low periodic intervals. ISP-level tracing supports only coarse-grained reporting intervals (e.g., daily, monthly), which limits its ability to support real-time carbon-aware application adaptation, although it remains effective for accurate carbon reporting.</t>
      </section>
      <section anchor="interoperability-considerations">
        <name>Interoperability Considerations</name>
        <t>To ensure interoperability across implementations and administrative domains, carbon values are expressed in consistent units across all telemetry methods. The attribution method used for idle energy is explicitly encoded in all telemetry representations and should be consistent at least along the path of a specific flow. Time intervals should be clearly defined where applicable.</t>
        <t>If one or more devices along a flow's path do not expose carbon metrics, the calculated carbon footprint of the flow will underestimate the actual value. The mechanisms specified in this document therefore provide a best-effort estimate based on the subset of participating devices. Although incomplete, such estimates remain valuable for identifying emission hotspots, comparing alternatives, and guiding carbon-aware optimization decisions.</t>
      </section>
    </section>
    <section anchor="other-carbon-scopes">
      <name>Other Carbon Scopes</name>
      <t>The framework can be extended beyond operational emissions to include other carbon scopes associated with network infrastructure.</t>
      <t>Embodied carbon emissions, i.e., emissions associated with the extraction of raw materials, manufacturing, transportation, and deployment of network equipment, can be treated analogously to idle power. These emissions are typically amortized over the operational lifetime of the device, which is often assumed to be approximately five years. The resulting amortized emissions can then be apportioned across flows using the same attribution methodologies defined for idle power consumption.</t>
      <t>Similarly, end-of-life emissions, including equipment decommissioning, transportation, recycling, and disposal, can be incorporated as an additional static carbon component. As with embodied emissions, these emissions may be amortized over the device lifetime and attributed across flows using the same methodologies applied to idle power.</t>
      <t>Consequently, the attribution framework defined in this document is not limited to operational emissions and can be applied to any static carbon component attributed to the device.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>Vendors are recommended to provide power-model parameters that have been adequately derived and validated in accordance with the recommended benchmarking methodology.</t>
      <t>Operators need to consider the Power Usage Effectiveness (PUE) where applicable by incorporating a PUE adjustment factor into the energy estimation coefficients to reflect facility-level overheads.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The use of in-band carbon telemetry is not expected to expose sensitive operational information, as the telemetry carries only an aggregate carbon value for the end-to-end path rather than per-hop measurements or detailed operational metrics.</t>
      <t>Implementations need to consider the confidentiality and integrity of telemetry data. In particular:</t>
      <ul spacing="normal">
        <li>
          <t>Access to carbon data should be restricted to authorized entities.</t>
        </li>
        <li>
          <t>Telemetry data can be aggregated or anonymized where possible to limit information leakage.</t>
        </li>
        <li>
          <t>Carbon data carried in packets need to be protected against unauthorized modification or inspection (e.g., via encryption or integrity protection at the network or transport layer).</t>
        </li>
        <li>
          <t>Exported telemetry data are required to be transmitted over secure channels.</t>
        </li>
      </ul>
      <t>Operators need to carefully evaluate the trade-off between telemetry granularity and potential information exposure when deploying these mechanisms.</t>
      <t>Furthermore, in inter-domain deployments, there is a risk that operators may report incorrect carbon metrics, intentionally or otherwise. For example, operators may advertise lower carbon intensity values to influence routing decisions or attract traffic. The validation and certification of reported metrics are outside the scope of this document and are expected to be addressed through separate trust, auditing, or regulatory mechanisms.</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 per-flow carbon metrics, idle attribution methods and carbon tracing methods.</t>
    </section>
    <section anchor="applicability">
      <name>Applicability</name>
      <t>This specification applies to packet forwarding devices including routers, switches, and programmable forwarding elements.</t>
    </section>
    <section anchor="limitations">
      <name>Limitations</name>
      <t>This document does not address:</t>
      <ul spacing="normal">
        <li>
          <t>non-packet network domains</t>
        </li>
        <li>
          <t>availability of carbon-intensity data</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <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 643?>

<section anchor="normative-references">
      <name>Normative References</name>
      <t><xref target="RFC2119"/> Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119.</t>
      <t><xref target="RFC8174"/> Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174.</t>
    </section>
    <section anchor="informative-references">
      <name>Informative References</name>
      <t>[ICT-Footprint-2023] Seth Ayers, Sara Ballan, Vanessa Gray, and Rosie McDonald. Measuring the emissions and energy footprint of the ICT sector: Implications for climate action. 2023. A Joint ITU/World Bank Report.</t>
      <t>[SIGMETRICS25] Sawsan El-Zahr and Noa Zilberman. 2025. From Measurement to Emissions: Assessing the Carbon Footprint of Traffic Flows. Proc. ACM Meas. Anal. Comput. Syst. 9, 3, Article 54 (December 2025), 24 pages. https://doi.org/10.1145/3771569</t>
      <t>[SIGMETRICS-GithubRepo] Sawsan El-Zahr and Noa Zilberman. "Measurements2Emissions", https://github.com/ox-computing/Measurements2Emissions, accessed June 2026.</t>
      <t>[ELECTRICITY-MAPS] Electricity Maps, "Methodology", https://www.electricitymaps.com/data-portal/methodology, accessed June 2026.</t>
      <t>[CARBON-INTENSITY-API] "Carbon Intensity API", https://www.carbonintensity.org.uk/, accessed June 2026.</t>
      <t>[I-D.draft-cxx-ippm-ioamaggr-04] Clemm, A., Metzger, L., Bister, R. and Dellsperger, S., "Aggregation Trace Option for In-situ Operations, Administration, and Maintenance (IOAM)", Work in Progress, Internet-Draft, draft-cxx-ippm-ioamaggr-04, 03 November 2025, https://datatracker.ietf.org/doc/draft-cxx-ippm-ioamaggr/04/</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA919W5MbyZXeO35FmgqFuykAZPMyw+ld7arZ3dS0PCTb7KZG
EoMhFYAEUGKhCqqs6iZmtQo9+Q/4weGIdYRf/Wj7we+77/sj9Et8rnmpKpAc
aWYVseOwtgmgsjJPnjyX71xyMpmMmrwp7LG586yobidf2RtbmNOsnlWlOd/k
zuVV6cx1nc3zcmWWVW0us/k725gXtrmt6nfuziibzWp7IyPos/iEvTNaVPMy
2+DwizpbNhNbfJOt68kS3zWnX04a/OXk/v07o3nW2FVV745NXi6rkWtnMoFm
t4UhLs6vn43ybX1smrp1zYP797+4/2CU1TaD4V9ubZ01NNmsXJjnWZmt7MaW
zZ0RTnNVV+0WfnYFD2Z5aV5ZZ7N6vjY/xS/ujN7ZHfxscTwyE+P4N9ksL/Jm
h5/wTPEvW9p6RZ81toDxm3o3urFla+FJoy+5A3/zlOnPTZYX8ie+kv6cVwug
57Fpm+XkyWibH5s3TTUfG1fVTW2XDv7abfCPt6NR1jbrqsapwQgGaOOOzdXU
nBeTXwEt6TOm8VV267Iy+aKq4SWvy/zG1g4WY6qlefkednFB31qZmqMHp7w5
P3HVxk6r99NsPm3f3Uleez41V/N1VRU2fu/5jU0//rS3AqtNnTz2E1uu9rzz
Fbyzaot/+V/RG19VM1s38ef0yl9mhY3em7ytpkemDh6xP9nBD6d20aZvejE1
v8oL+NkmK6OXvaiyzueftr6yyqbf6HOdBY4WwOvH5sH9B59N7n8+uf/ZaAJH
Ef/HZDOHR6IZ4X/X69wZOEQtsrJZ2GVeWuBwA5y3rhamqeCzGuZhgP3pVAmH
mjmchHazxRNBByJzrprn8NKFcDNMU0/3bQ6DtY2p7e/avMZznpcFvMhsq1tb
I23gwOEE6ICRECj59Bt8YotfTUcnBY6yWg/NABYxrzabqix2Bv43b6oaJpI1
pllbWMFNPrdjHXMM5DVLkDd4+kyBAmlscN2TVQ3Hkp5r6nzW0shA+j0r7i0T
iJWXi/wmX7RZATIkWy7zuUGiOVg6bBrJDlNtbQn/FvmwBb6Bgz6FnbBmDgut
4Vl4VZgBrA1XAVTZtEWmk8po4AlNX6eSzedVWzZI4E21gM+bNZKgzkqHTyON
4GvYyFnmYJk6w43NXFuTMHOwAliGrLh1IOOMdU2+gY1lwQdC08GmwG+B1PTj
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
nAwS/96e4e7df3QPEef/D+t+TtTiwwAA

-->

</rfc>
