<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- You want a table of contents -->
<!-- Use symbolic labels for references -->
<!-- This sorts the references -->
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<?rfc sortrefs="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<rfc category="info" docName="draft-peng-v6ops-eh-deployment-considerations-00" ipr="trust200902">
  <front>
    <title abbrev="IPv6 Options Deployment">Deployment considerations of IPv6 packets with options</title>


    <author fullname="Shuping Peng" initials="S." surname="Peng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city></city>

          <code/>

          <country>China</country>
        </postal>

        <email>pengshuping@huawei.com</email>
      </address>
    </author>
	
	    <author fullname="Giuseppe Fioccola" initials="G." surname="Fioccola">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city></city>

          <code/>

          <country>Germany</country>
        </postal>

        <email>giuseppe.fioccola@huawei.com</email>
      </address>
    </author>

	    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city></city>

          <code/>

          <country>China</country>
        </postal>

        <email>jie.dong@huawei.com</email>
      </address>
    </author>
 

    <!---->

    <date day="13" month="March" year="2023"/>

    <area>Networking</area>

    <workgroup>Network Working Group</workgroup>

    <abstract>
<t>As more and more new services using IPv6 options have been proposed and start being deployed in a large-scale network environment, issues also start showing up in deployments. This document describes and analyzes the issues encountered, and aims to provide deployment guidance when the IPv6 options are used. </t>
    </abstract>

    <note title="Requirements Language">
      <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"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t>
    </note>
  </front>

<middle>
    <section title="Introduction">
<t>More and more new services using IPv6 options, such as <xref target="I-D.ietf-ippm-ioam-ipv6-options"/>, Alternate Marking Method <xref target="RFC9343"/>, Minimum Path MTU Hop-by-Hop Option <xref target="RFC9268"/>, and Virtual Transport Network (VTN) <xref target="I-D.ietf-6man-enhanced-vpn-vtn-id"/>, have been proposed. They start being deployed in a large-scale network environment. However, since IPv6 especially with options has not been widely deployed, some issues start showing up in deployments <xref target="RFC9098"/>. It is important to analyze these issues, provide guidance on their reasonable usages, and help progress their deployments in large-scale networks <xref target="I-D.ietf-6man-eh-limits"/>. </t>

<t>This document describes and analyzes the issues encountered, and aims to provide deployment guidance when the IPv6 options are used.</t>

    </section>

	<section title="Terminology">
    <t>The terms used in this draft refer to the terminologies as defined in <xref target="RFC8200"/> and <xref target="RFC8754"/>.</t>
    </section>

    <section title="SRH TLV vs. DOH Options">
     	  
	  <t>As specified in <xref target="RFC8200"/>, the Destination Options header (DOH) is used to carry optional information that needs be examined only by a packet's destination node(s). When a Routing header (RH) exists, the DOH before RH is "for options to be processed by the first destination that appears in the IPv6 Destination Address field plus subsequent destinations listed in the Routing header", while the one after RH is "for options to be processed only by the final destination of the packet". </t>
	  
	  <t>As specified in <xref target="RFC8754"/>, SR segment endpoint nodes process the local segment (SID) corresponding to the packet destination address (DA). Then, the DA is updated according to the segment list. The Segment Routing Header TLV (SRH TLV) provides metadata for segment processing, while processing the SID, if the node is locally configured to do so. </t>
	  
	  <t>From the aspect of processing function, both the DOH before RH and SRH TLV are processed at the node being indicated in the DA field of the IPv6 header. Both can co-exist according to current specifications, which raises an issue of choice phobia in deployments. </t>
	  
	  <t>The two options are analyzed in the following aspects to provide deployment guidance.</t>
	  
	  
	   <section title="Usage scenarios">
     	  
	  <t>In an IPv6 network without SRv6 being supported, i.e., in an IPv6 header with a RH but not SRH, the DOH is required to carry the options to be processed by the first destination that appears in the IPv6 DA field plus subsequent destinations listed in the RH. </t>
	  
	  <t> When SRv6 is supported, there are two places in the IPv6 header to carry the options that can be processed on each SRv6 nodes. DOH is designed for more general IPv6 usages, while SRH TLV is appended to SRH and designed for SRv6 usage only.  </t>
 
</section>

 <section title="Implementation">
     	  
	  <t>SRH TLV and DOH are generally two functional modules in the forwarding plane. Some devices may support the processing of SRH TLV but not DOH at the same time and vice versa. </t>
	  <t>SRH and SRH TLV are integrated modules, while DOH is a more independent general IPv6 functional module. </t>
 
</section>

 <section title="Cost">
     	  
	  <t>Supporting two modules (DOH and SRH TLV) at the same time consume more cost, so most of time only one module is supported for the same functional requirement. </t>
	  
	  <t>When both modules are supported, since SRH TLV is appended to SRH and separated from other IPv6 options, the confliction with others is minimal.   </t>
 
</section>

 <section title="Deployment guidance">
     	  
	  <t>The capabilities of devices in network should be evaluated before supporting any new services. Capability advertisement mechanisms can be utilized. </t>
	  
	  <t>The holding place choice is up to network operators, depending on the service requirements and network device capabilities, etc. </t>
	  
	  <t>When SRH TLV and DoH and other extension headers coexist, SRH TLV is recommended to carry SRv6 related information. </t>
	  
	  <t>Duplication of the same option in different places should be avoided. </t>
	  
 
</section>
 
</section>

 <section title="Generic Option vs. Specific Option">
     	  
	  <t>As more and more new services using IPv6 options being proposed, there is a concern that the allocation space for option types may quickly exhaust. Therefore, solution such as generic identifier option <xref target="I-D.iurman-6man-carry-identifier"/> has been proposed. </t>
	  
	  <t>However, each of the newly proposed options is designed for a specific service. As specified in <xref target="RFC8200"/>, "there has to be a very clear justification why any new hop-by-hop option is needed before it is standardized.". These services have already justified their needs before they are proposed and standardized. </t> 
	  
	   <section title="Implementation">	  	       	  
	  <t>As specified in <xref target="I-D.ietf-6man-hbh-processing"/>, the new hop-by-hop options should be straight forward to process. That is, new Hop-by-Hop options SHOULD be designed to ensure the node can process the options at the full forwarding rate (e.g., on the router's Fast Path). </t>
	  
	  <t>Such generic option raises the implementation and processing requirements, while specific option is designed for specific service usage which eases implementations and is straight forward to process. </t>
</section>
	  
	  
 <section title="Extending the allocation space of Option Type">     	  
	  <t>As specified in <xref target="RFC8200"/>, the option type is a 8-bit identifier of the type of option. The highest-order 2 bits specify the action that must be taken if the processing IPv6 node does not recognize the Option Type, and the third-highest-order bit of the Option Type specifies whether or not the Option Data of that option can change en route to the packet's final destination. The three high-order bits described above are to be treated as part of the Option Type, not independent of the Option Type. So the allocation space left for new options are actually left to 5 bits. The concern for quickly exhaustion makes sense.  </t>
	  
	  <t>The root cause for quick exhaustion is the allocation space of the option type itself is limited. As more and more new services being proposed and standardized, a way of holding more options need to be figured out. </t>
	  
	  <section title="Backwards compatibility">     	  	  
	  <t>The allocation space extension design should consider the backwards compatibility, that is, it should not affect the processing of the existing option types on devices. </t>
	  
	  
 
</section>
	  
	  
	  
 
</section>	  
  

 
</section>


    <section anchor="Security" title="Security Considerations">
      <t>The security considerations can refer to <xref target="RFC8200"/>, and <xref target="RFC8754"/>. </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">

<t>This document does not include an IANA request.</t>

    </section>

<section title="Acknowledgements">
      <t>The authors would like to acknowledge Stefano Previdi for his valuable review and comments.</t>
    </section>

  </middle>



  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
	  <?rfc include="reference.RFC.8174"?>
	  <?rfc include="reference.RFC.8200"?>
	  <?rfc include="reference.RFC.8754"?>
	  <?rfc include="reference.RFC.9098"?>
	  

    </references>

    <references title="Informative References">
	<?rfc include="reference.RFC.9343"?>
	<?rfc include="reference.RFC.9268"?>
	<?rfc include="reference.I-D.ietf-ippm-ioam-ipv6-options"?>
	<?rfc include="reference.I-D.ietf-6man-enhanced-vpn-vtn-id"?>
	<?rfc include="reference.I-D.iurman-6man-carry-identifier"?>
	<?rfc include="reference.I-D.ietf-6man-hbh-processing"?>
	<?rfc include="reference.I-D.ietf-6man-eh-limits"?>
	
    </references>

  </back>
</rfc>
