<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-yan-opsawg-ipfix-energy-consumption-01"
     ipr="trust200902"
     obsoletes=""
     updates=""
     submissionType="IETF"
     xml:lang="en"
     tocInclude="true"
     tocDepth="4"
     symRefs="true"
     sortRefs="true"
     version="3">
	<!-- ***** FRONT MATTER ***** -->
	<front>
		<title abbrev="Export of Energy Consumption Information in IPFIX">Export of Energy Consumption Information in IPFIX</title>
		<seriesInfo name="Internet-Draft"
		            value="draft-yan-opsawg-ipfix-energy-consumption-01"/>
		<author fullname="Jinjie Yan"
		        initials="Jinjie"
		        surname="Yan">
			<organization>ZTE Corporation</organization>
			<address>
				<postal>
					<street/>
					<city/>
					<region/>
					<code/>
					<country>China</country>
				</postal>
				<phone/>
				<email>yan.jinjie@zte.com.cn</email>
			</address>
		</author>
		<author fullname="Jinming Li"
		        initials="Jinming"
		        surname="Li">
			<organization>China Mobile</organization>
			<address>
				<postal>
					<street/>
					<city/>
					<region/>
					<code/>
					<country>China</country>
				</postal>
				<phone/>
				<email>lijinming@chinamobile.com.cn</email>
			</address>
		</author>
		
		<area>OPS</area>
		<workgroup>OPSAWG</workgroup>
		<keyword/>
		<abstract>
			<t>
	This document introduces new IPFIX IEs for exporting energy consumption information of physical entities in a network device. New Information Elements are defined to report instantaneous and average energy consumption information at device, line-card, and port granularity. 
			</t>
		</abstract>
	</front>
	<middle>
		<section numbered="true"
		         toc="default">
			<name>Introduction</name>
			<t>
			Energy consumption has emerged as a critical operational metric in modern data centers and communication networks, driven by increasing demands for sustainability and cost efficiency. Operators require accurate, traffic-correlated power information to support applications such as energy-aware routing, per-service energy cost accounting, and fine-grained power management.
			</t>
			<t>
			Traditional monitoring protocols, like SNMP, rely on periodic polling, which often fails to capture the dynamic interplay between traffic loads and power draw, leading to delayed or inaccurate insights. In contrast, the IP Flow Information Export (IPFIX) protocol <xref target="RFC7011"></xref> offers a proven, event-driven framework that inherently binds metering observations to traffic events at the source, ensuring timely and causal reporting.
			</t>
			
			<t>
			To address these needs, this document defines six new Information Elements (IEs) that enable an IPFIX Exporting Process to report energy consumption for physical entities within a network device, including the entire device, line cards, and ports. These IEs support both instantaneous (realtime) power values, which provide snapshots at the moment of export for immediate analysis, and average power values over the measurement interval since the last export, which are useful for trend detection and aggregated accounting. The measurements are exported via existing IPFIX triggering mechanisms—such as packet count thresholds, active timeouts, and inactive timeouts—preserving causality between observed traffic and reported energy metrics.
			</t>
			<t>
			This document introduces new IPFIX IEs for exporting energy consumption information of physical entities in a network device to facilitate energy-aware networking by providing granular, real-time data for optimized network operations. 
			</t>
			
			
			<section numbered="true"
			         toc="default">
				<name>Requirements Language</name>
				<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in					<xref target="RFC2119"
					      format="default"/>.</t>
			</section>
		</section>
		
		
		
		
		<section anchor="Terminology"
		         numbered="true"
		         toc="default">
			<name>Terminology</name>
			<t>
			This document makes use of the terms defined in <xref target="RFC7011" format="default"></xref>:
			</t>
		
				<ul spacing="normal">
				<li>IPFIX</li>
				<li>IPFIX Information Elements</li>
				<li>Exporting Process</li>
				<li>Metering Process</li>
				<li>Template Record</li>
				<li>Data Record</li>
				<li>Exporter</li>
				<li>Collector</li>		
				</ul>
				</section>
		
		<section numbered="true"
		         toc="default">
			<name>New IPFIX IEs for Energy Consumption Information</name>
			<t>
			The following new Information Elements are defined:
			</t>
			<section numbered="true"
			         toc="default"
					 anchor="section3.1">
				<name>deviceRealtimePower</name>
				<t>
				Name：deviceRealtimePower
				</t>
				<t>
				ElementID: TBD1
				</t>
				<t>
				Description: Instantaneous total power consumption of the entire exporting device at the time of export.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: watts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
			<section numbered="true"
			         toc="default"
					 anchor="section3.2">
				<name>deviceAveragePower</name>
				<t>
				Name：deviceAveragePower
				</t>
				<t>
				ElementID: TBD2
				</t>
				<t>
				Description: Average total power consumption of the entire exporting device over the interval since the last export of this Template.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: watts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
			<section numbered="true"
			         toc="default"
					 anchor="section3.3">
				<name>lineCardRealtimePower</name>
				<t>
				Name：lineCardRealtimePower
				</t>
				<t>
				ElementID: TBD3
				</t>
				<t>
				Description: Instantaneous power consumption of the line card at the time of export.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: milliwatts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
			<section numbered="true"
			         toc="default"
					 anchor="section3.4">
				<name>lineCardAveragePower</name>
				<t>
				Name：lineCardAveragePower
				</t>
				<t>
				ElementID: TBD4
				</t>
				<t>
				Description: Average power consumption of the line card identified over the interval since the last export.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: milliwatts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
			<section numbered="true"
			         toc="default"
					 anchor="section3.5">
				<name>portRealtimePower</name>
				<t>
				Name：portRealtimePower
				</t>
				<t>
				ElementID: TBD5
				</t>
				<t>
				Description: Instantaneous power consumption of the port at the time of export.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: milliwatts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
			<section numbered="true"
			         toc="default"
					 anchor="section3.6">
				<name>portAveragePower</name>
				<t>
				Name：portAveragePower
				</t>
				<t>
				ElementID: TBD6
				</t>
				<t>
				Description: Average power consumption of the port over the interval since the last export.
				</t>
				<t>
				Abstract Data Type: unsigned32
				</t>
				<t>
				Data Type Semantics: quantity
				</t>
				<t>
				Units: milliwatts
				</t>
				<t>
				Reference: This document.
				</t>
			</section>
		
		</section>
		<section numbered="true"
		         toc="default">
			<name>Use Cases</name>
			
			<section numbered="true"
		         toc="default">
			<name>Energy-Aware Routing</name>
				<t>
				In this scenario, network controllers may require accurate, traffic-correlated power consumption metrics of physical links (represented by ports) to compute paths that minimize total energy cost. Traditional periodic polling mechanisms often fail to capture the dynamic relationship between instantaneous traffic load and actual power draw, leading to suboptimal routing decisions.
				</t>
				<t>
				By leveraging the IPFIX-based energy telemetry defined in this document, a network device can export multi-level power consumption data (e.g., port, line card, and device levels) triggered by traffic events such as packet count thresholds or active/inactive timeouts. The exported data records can provide both instantaneous and average power values over the observation interval, enabling the controller to derive meaningful energy cost metrics, such as per-link energy-per-bit or average power under load, for use in path computation algorithms. This tight coupling between traffic behavior and energy reporting ensures that routing decisions reflect real-time energy efficiency characteristics of network links.
				</t>
			</section>
			
			<section numbered="true"
		         toc="default">
			<name>Per-Flow Energy Consumption Monitoring</name>
				<t>
				For fine-grained energy accounting and auditing of specific high-bandwidth ("elephant") flows, such as backup traffic between data center servers, it is essential to attribute the energy consumed across multiple physical components (e.g., ingress/egress ports and their respective line cards) to the flow itself.
				</t>
				<t>
				Using the mechanisms described in this document, an IPFIX Exporting Process can associate energy consumption measurements with a specific IP flow (identified by, e.g., a 5-tuple) and trigger synchronized reporting when predefined traffic thresholds are met. By including  physical entity identifiers (e.g., lineCardId, portId) and the newly defined energy Information Elements, the exporter can generate multiple correlated data records corresponding to the various physical interfaces involved in forwarding the flow. This enables collectors to reconstruct a complete, multi-path energy footprint of the flow across the device, supporting accurate per-flow energy cost attribution and operational analysis.
				</t>
			</section>
		</section>
		

		<section numbered="true"
		         toc="default">
			<name>Operational Considerations</name>
			<t>
			The export and interpretation of energy consumption information in IPFIX are intended to be driven by traffic activity observed at specific points in the data plane. Implementations SHOULD configure monitoring policies that associate one or more physical entities—such as a device, line card, or port—with an observation object (e.g., an interface or a flow). 
			</t>
			<t>
			Energy telemetry records SHOULD be generated when predefined traffic-driven conditions are met. These conditions MAY include:
			</t>
			<ul>
				<li>
				The number of packets observed since the last export exceeds a configured threshold;
				</li>
				<li>
				An active timeout elapses under continuous but low-volume traffic; or
				</li>
				<li>
				An inactive timeout elapses after no packets are observed for a configured duration.
				</li>
			</ul>
				
			<t>
			The Exporting Process collects power measurements—such as instantaneous and average power—for each associated physical entity. These measurements are encoded into Data Records using the newly defined energy Information Elements (e.g., lineCardRealtimePower, portAveragePower). Each Data Record SHOULD also include identifier Information Elements (e.g., lineCardId, portId) to unambiguously associate the reported energy values with their corresponding hardware components.
			</t>
			<t>
			The resulting Data Records are exported to a Collector within an IPFIX Message, along with a reference to the applicable Template Record (e.g., via Template ID).
			</t>
			<t>
			A Collector receiving such messages SHOULD possess the corresponding Template Record to correctly parse the structure and semantics of the Data Records. 
			</t>
			<t>
			The Collector parses each Data Record to recover:
			</t>
			<ul>
				<li>
				The identifier(s) of the physical entity (or entities) linked to the observation object; and
				</li>
				<li>
				The associated energy consumption information.
				</li>
			</ul>
			<t>
			This end-to-end mechanism ensures that energy reports are causally tied to traffic activity.
			</t>
			
		</section>		
			
	
		<section numbered="true"
		         toc="default">
			<name>Security Considerations</name>
			<t>TBA</t>
		</section>
		<section numbered="true"
		         toc="default">
			<name>IANA Considerations</name>
			<t>
			This document requests IANA to create a new IE under the "IPFIX Information Elements" registry <xref target="RFC7012" format="default"></xref> available at <xref target="IANA-IPFIX" format="default" sectionFormat="of" derivedContent="IANA-IPFIX"/>.
			</t>
			<table anchor="iana-psid">
				<name>IPFIX Information Elements Registry</name>
				<thead>
				<tr>
				<td>Element ID</td><td>Name</td><td>Reference</td>
				</tr>
				</thead>
				<tbody>
				<tr>
				<td>TBD1</td><td>deviceRealtimePower</td><td><xref target="section3.1"/></td>
				</tr>
				</tbody>
				<tbody>
				<tr>
				<td>TBD2</td><td>deviceAveragePower</td><td><xref target="section3.2"/></td>
				</tr>
				</tbody>
				<tbody>
				<tr>
				<td>TBD3</td><td>lineCardRealtimePower</td><td><xref target="section3.3"/></td>
				</tr>
				</tbody>
				<tbody>
				<tr>
				<td>TBD4</td><td>lineCardAveragePower</td><td><xref target="section3.4"/></td>
				</tr>
				</tbody>
				<tbody>				
				<tr>
				<td>TBD5</td><td>portRealtimePower</td><td><xref target="section3.5"/></td>
				</tr>
				</tbody>
				<tbody>				
				<tr>
				<td>TBD6</td><td>portAveragePower</td><td><xref target="section3.6"/></td>
				</tr>
				</tbody>
				
			</table>	
		</section>
		<section numbered="true"
		         toc="default">
			<name>Acknowledgements</name>
			<t>TBA</t>
		</section>
	</middle>
	<!--  *****BACK MATTER ***** -->
	<back>
		<references>
			<name>References</name>
			<references>
				<name>Normative References</name>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7011.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7012.xml"/>
				
				<reference anchor="IANA-IPFIX" target="https://www.iana.org/assignments/ipfix" quoteTitle="true" derivedAnchor="IANA-IPFIX">
				  <front>
					<title>IP Flow Information Export (IPFIX) Entities</title>
					<author>
					  <organization showOnFrontPage="true">IANA</organization>
					</author>
					<date/>
				  </front>
				</reference>
				
				
			</references>
		</references>
	</back>
</rfc>
