<?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-liu-opsawg-ipfix-igp-algo-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="IPFIX for IGP-Algo">Export of IGP Algorithm Information in IPFIX</title>
    <seriesInfo name="Internet-Draft" value="draft-liu-opsawg-ipfix-igp-algo-01"/>
   <author fullname="Yao Liu" surname="Liu">
      <organization>ZTE</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>liu.yao71@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
   <author fullname="Liman Zhao" surname="Zhao">
      <organization>ZTE</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country></country>
        </postal>
        <phone></phone>
        <email>zhao.liman@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>	
    <date year="2026"/>

   <!-- Meta-data Declarations -->

   <area>OPS</area>
    <workgroup>OPSAWG</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>IPFIX</keyword>
   <keyword>IGP Algorithm</keyword>
   <keyword>Flexible Algorithm(Flex-Algorithm)</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
      <t>This document introduces a new IPFIX information element (IE) to identify the IGP algorithm information related with the Segment Identifier (SID) or the IPv4/IPv6 prefix.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>  
	 <t><xref target="RFC9350"></xref> introduces the concept of Flexible Algorithm that allows IGPs (ISIS, OSPFv2 and OSPFv3) to compute constraint-based path over an SR-MPLS or an SRv6 network. In SR, the same prefix can be associated with multiple algorithms. <xref target="I-D.ietf-lsr-algorithm-related-adjacency-sid"></xref> comments that, besides the SR-MPLS prefix SID, the algorithm can be also included as part of an SR-MPLS Adjacency-SID advertisement in scenarios where multiple algorithms share the same link resource. </t>  
	 <t><xref target="RFC9502"></xref> further extends IGP Flexible Algorithm so that it can be used with regular IPv4 and IPv6 forwarding.</t>
	 <t>With IGP Flexible Algorithm, a physical network can be divided into multiple logical planes. For each Flex-Algorithm, the path is computed independently.</t>
	  
	<t>Below are the typical use cases when monitoring a traffic flow in a network with IGP Flex-Algorithm enabled.</t>
		<ul spacing="normal">
		<li>Which Flex-Algorithm is the SR-MPLS SID or the SRv6 SID locator belongs to?</li>
		<li>Which Flex-Algorithm is the IPv4/IPv6 prefix related with?</li>
		</ul>
	<t>By only looking at the SR SID or the IP address itself, the above questions could not be answered. </t>
	
	<t>This document introduces a new IP Flow Information Export (IPFIX) information element (IE) to identify the IGP algorithm related with the SR segment identifier (SID) or the IPv4/IPv6 prefix.</t>
	 </section>		
		


<section numbered="true" toc="default">
        <name>Terminology</name>
		<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"></xref> <xref target="RFC8174" format="default"></xref> when, and only when, they appear in all capitals, as shown here.</t>
		<t>This document makes use of the terms defined in <xref target="RFC7011" format="default"></xref>, <xref target="RFC8402" format="default"></xref> and <xref target="RFC9350" format="default"></xref>.</t>
		<t>The following terms are used as defined in <xref target="RFC7011" format="default"></xref>:</t>	
		<ul spacing="normal">
		<li>IPFIX</li>
		<li>IPFIX Information Elements</li>
		<li>Metering Process</li>
		<li>Template Record</li>
		<li>Data Record</li>
		<li>Collector</li>		
		</ul>
		<t>The following terms are used as defined in <xref target="RFC8402" format="default"></xref>:</t>	
		<ul spacing="normal">
		<li>Segment Routing (SR)</li>
		<li>Segment List</li>
		<li>SRv6</li>
		<li>SR-MPLS</li>
		<li>Segment Identifier (SID)</li>		
		</ul>
		<t>The following terms are used as defined in <xref target="RFC8665" sectionFormat="of" section="3.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8665#section-3.1" derivedContent="RFC8665"/>:</t>	
		<ul spacing="normal">
		<li>(IGP) Algorithm</li>
		</ul>
		<t>The following terms are used as defined in <xref target="RFC9350" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9350#section-4" derivedContent="RFC9350"/>:</t>	
		<ul spacing="normal">
		<li>Flexible Algorithm</li>
		</ul>		
      </section>

<section numbered="true" toc="default">
	<name>IGP Algorithm Information in IPFIX</name>	
	
		<t>A new IE "igpAlgo" is defined in this document to identify the IGP Algorithm information related with an SR-MPLS SID, an SRv6 locator  or an IPv4/IPv6 prefix, the IE carries the value of the IGP Algorithm Types as in the IANA "IGP Algorithm Types" registry.</t>
		<dl newline="false" indent="3" spacing="normal" >
          <dt>Name:</dt>
          <dd>
            <t>igpAlgo</t>
          </dd>
          <dt>ElementID:</dt>
          <dd >
            <t>TBD1</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t indent="0">The 8-bit value that represents an IGP  Algorithm type related with an SR-MPLS SID, an SRv6 locator or an IPv4/IPv6 prefix. The values of the IGP Algorithm types are specified in the IANA "IGP Algorithm Types", i.e., the value is 0 if the default algorithm is used, the value is 1 if Strict Shortest Path First (Strict-SPF) algorithm is used, and the value can be 128-255 for Flex-Algo.</t><!-- The 8-bit value that represents an IGP algorithm related with an SR-MPLS SID, an SRv6 locator or an IPv4/IPv6 prefix. The IGP algorithm values are defined in the IANA "IGP Algorithm Types".</t>  -->
          </dd>
          <dt>Abstract Data Type:</dt>
          <dd>
            <t indent="0" >unsigned8</t>
          </dd>
          <dt>Data Type Semantics:</dt>
          <dd >
            <t indent="0">identifier</t>
          </dd>
          <dt>Additional Information:</dt>
          <dd>
            <t indent="0">Specified in <!-- <xref target="RFC8665" format="default"></xref>, --><xref target="RFC9350" format="default"></xref> and <xref target="RFC9502" format="default"></xref>.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t indent="0" >This document.</t>
          </dd>
        </dl>
</section>
	
<section numbered="true" toc="default">
	<name>Operational Considerations</name>
	<t>When used for monitoring SR-MPLS traffic flows, the IE "igpAlgo" indicates the IGP flexible algorithm of the active SR-MPLS prefix/adjacency SID or the IGP prefix related with the SR-MPLS SID, as in <xref target="RFC8665" format="default"></xref>, <xref target="RFC9350" format="default"></xref> and <xref target="I-D.ietf-lsr-algorithm-related-adjacency-sid"></xref>. And the "igpAlgo" is valid when the value of IE "IPFIX MPLS label type (Value 46)"<xref target="RFC9160" format="default"></xref> in the data record is 7 (OSPFv2 Segment Routing), 8 (OSPFv3 Segment Routing) or 9 (IS-IS Segment Routing). In the absence of the IE "IPFIX MPLS label type" in the IPFIX template record, how to process the "igpAlgo" is implementation specific.</t>
	<t>When used for monitoring SRv6 traffic flows, the IE "igpAlgo" indicates the IGP algorithm related with the locator of the active SRv6 SID as in <xref target="RFC9350" format="default"></xref>, <xref target="RFC9352" format="default"></xref> and <xref target="RFC9513" format="default"></xref>. And the IE "igpAlgo" is valid when the value of IE "IPFIX IPv6 SRH Segment Type (Value 500)"<xref target="RFC9487" format="default"></xref> in the data record is 3 (OSPFv3 Segment Routing) or 4 (IS-IS Segment Routing). In the absence of the IE "IPv6 SRH Segment Type", how to process the "igpAlgo" is implementation specific.</t>
	<t>When monitoring pure IPv4/IPv6 traffic flows, the IE "igpAlgo" can be used to indicate the IGP algorithm related with the destination IPv4/IPv6 address or the IPv4/IPv6 next hop address.</t>	
	

</section>


<section numbered="true" toc="default">
	<name>Security Considerations</name>
		<t>There are no additional security considerations regarding allocation of these new IPFIX IEs compared to <xref target="RFC7012" format="default"></xref>.</t>
		<t>Other security considerations for IGP flexible algorithm in <xref target="RFC9350"></xref> and <xref target="RFC9502"></xref> apply to this document.</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>
		
		  <artwork align="center" name=""><![CDATA[
     +-------+--------------------------------+
     |Element|      Name       |  Reference   |
     |   ID  |                 |              |
     +-------+-----------------+--------------+
     | TBD1  |   igpAlgo       |This document |
     +-------+-----------------+--------------+
	  
           ]]></artwork>
		
		

	</section>

	<section numbered="true" toc="default">
	<name>Acknowledgements</name>
		<t>The authors would like to thank Thomas Graf for his helpful comments and suggestions.

</t>
</section>
	
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>

		<?rfc include="reference.RFC.2119.xml"?>
		<?rfc include="reference.RFC.8174.xml"?>
		<?rfc include="reference.RFC.9350.xml"?>
		<?rfc include="reference.RFC.8665.xml"?>
		<?rfc include="reference.RFC.9502.xml"?>
		<?rfc include="reference.RFC.7012.xml"?>
		<?rfc include="reference.RFC.8754.xml"?>
 		<?rfc include="reference.RFC.8402.xml"?>
		<?rfc include="reference.RFC.7011.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>
        <name>Informative References</name>
		<?rfc include="reference.RFC.9487.xml"?>
		<?rfc include="reference.RFC.9160.xml"?>
		<?rfc include="reference.RFC.9513.xml"?>
		<?rfc include="reference.RFC.9352.xml"?>		
	    <?rfc include='reference.I-D.ietf-lsr-algorithm-related-adjacency-sid.xml'?>
      </references>
    </references>


 </back>
</rfc>
