<?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.6.22 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boucadair-opsawg-ipfix-tcpo-v6eh-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="New TCP and IPv6 EH IPFIX IEs">Extended TCP Options and IPv6 Extension Headers IPFIX Information Elements</title>
    <seriesInfo name="Internet-Draft" value="draft-boucadair-opsawg-ipfix-tcpo-v6eh-00"/>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Benoit Claise">
      <organization>Huawei</organization>
      <address>
        <email>benoit.claise@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="07"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>IPFIX</keyword>
    <abstract>
      <t>This document sepcifies new IPFIX Information Elements (IEs) to solve some issues with existing ipv6ExtensionHeaders and tcpOptions IEs, especially the ability to export any observed TCP option or IPv6 Extension Headers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Operations and Management Area Working Group Working Group mailing list (opsawg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/ipfix-tcpoptions-and-v6eh"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The current specification of ipv6ExtensionHeaders Information Element (IE) does not:</t>
      <ul spacing="normal">
        <li>Cover the full EHs range.</li>
        <li>Specify how to automatically update the registry when a new value is assigned in <xref target="IPv6-EH"/>.</li>
        <li>Specify the procedure to follow when all bits are exhausted.</li>
      </ul>
      <t>Alos, only TCP options having a kind =&lt; 63 can be included in a tcpOptions IE. The specification of the tcpOptions IE does not describe how any observed TCP option in a packet can be exported using IPFIX. Also, there is no way to report the observed Experimental Identifiers (ExIDs) that are carried in shared TCP options (kind=253 or 254) <xref target="RFC6994"/>.</t>
      <t>This document specifies new IPFIX Information Elements to solve the abovementioned issues.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>
      <t>This document uses the IPFIX-specific terminology (Information Element, Template,
   Collector,  Data Record, Flow Record, Exporting Process,
   Collecting Process, etc.) defined in
   Section 2 of <xref target="RFC7011"/>. As in <xref target="RFC7011"/>, these IPFIX-specific terms
   have the first letter of a word capitalized.</t>
      <section anchor="ipv6extensionheadersfull-information-element">
        <name>ipv6ExtensionHeadersFull Information Element</name>
        <t>This document requests IANA to add this new IE to the IPFIX regisry:</t>
        <ul spacing="normal">
          <li>Name: ipv6ExtensionHeadersFull</li>
          <li>ElementID: TBD1</li>
          <li>
            <t>Description:
 IPv6 extension headers observed in packets of this Flow. The
 information is encoded in a set of bit fields.  For each IPv6
 option header, there is a bit in this set.  The bit is set to 1 if
 any observed packet of this Flow contains the corresponding IPv6
 extension header.  Otherwise, if no observed packet of this Flow
 contained the respective IPv6 extension header, the value of the
 corresponding bit is 0. The IPv6 EH associated with each bit
 is provided in  [NEW_IPFIX_IPv6EH_SUBREGISTRY].  </t>
            <t>
The value can be encoded in fewer octets as per the guidelines in
 Section 6.2 of <xref target="RFC7011"/>.</t>
          </li>
          <li>Abstract Data Type: unsigned</li>
          <li>Data Type Semantics: flags</li>
          <li>Reference: [This-Document]</li>
          <li>Additional Information: See the assigned bits to each IPv6 extension header in [NEW_IPFIX_IPv6EH_SUBREGISTRY]. See [RFC8200] for the general definition of IPv6 extension headers and <xref target="IPv6-EH"/> for assigned extension headers.</li>
        </ul>
      </section>
      <section anchor="tcp-options">
        <name>TCP Options</name>
        <section anchor="new-information-elements-for-the-full-tcp-options-range-tcpoptionsfull">
          <name>New Information Elements for the Full TCP Options Range: tcpOptionsFull</name>
          <t>This document requests IANA to add this new IE to the IPFIX regisry:</t>
          <ul spacing="normal">
            <li>Name: tcpOptionsFull</li>
            <li>ElementID: TBD2</li>
            <li>
              <t>Description:
 TCP options in packets of this Flow.  The information is encoded
 in a set of bit fields.  For each TCP option, there is a bit in
 this set.  The bit is set to 1 if any observed packet of this Flow
 contains the corresponding TCP option.  Otherwise, if no observed
 packet of this Flow contained the respective TCP option, the value
 of the corresponding bit is 0.  </t>
              <t>
Options are mapped to bits according to their option numbers.
 Option number X is mapped to bit X.  TCP option numbers are
 maintained by IANA.  </t>
              <t>
The value can be encoded in fewer octets as per the guidelines in
 Section 6.2 of <xref target="RFC7011"/>.</t>
            </li>
            <li>Abstract Data Type: unsigned</li>
            <li>Data Type Semantics: flags</li>
            <li>Reference: [This-Document]</li>
            <li>Additional Information: See the assigned TCP option kinds at <xref target="IANA-TCP"/>. See <xref target="RFC9293"/> for the general definition of TCP options.</li>
          </ul>
        </section>
        <section anchor="new-information-elements-for-shared-tcp-options">
          <name>New Information Elements for Shared TCP Options</name>
          <t>ExIDs can be either 2 or 4 bytes in length <xref target="RFC6994"/>. Two new IEs are defined to accomodate these two lengths without introducing extra complexity in mixing both types in the same IE.</t>
          <t>This document requests IANA to add the following new IEs to the IANA IPFIX registry <xref target="IANA-IPFIX"/>.</t>
          <section anchor="tcpexid16-information-element">
            <name>tcpExID16 Information Element</name>
            <ul spacing="normal">
              <li>Name: tcpExID16</li>
              <li>ElementID: TBD3</li>
              <li>Description: Observed 2-byte Expermients IDs (ExIDs) in a shared
TCP option (Kind=253 or 254).  The information is encoded in a set of
16-bit fields.  Each 16-bit field carries the observed 2-byte ExID in a
shared option.</li>
              <li>Abstract Data Type: octetArray</li>
              <li>Data Type Semantics: identifier</li>
              <li>Additional Information: See assigned 16-bit ExIDs at <xref target="IANA-TCP-EXIDs"/>.</li>
              <li>Reference: [This-Document]</li>
            </ul>
          </section>
          <section anchor="new-ie-tcpexid32">
            <name>New IE: tcpExID32</name>
            <ul spacing="normal">
              <li>Name: tcpExID32</li>
              <li>ElementID: TBD4</li>
              <li>Description: Observed 4-byte Expermients ID (ExIDs) in a shared
TCP option (Kind=253 or 254).  The information is encoded in a set of
16-bit fields.  Each 32-bit field carries the observed 4-byte ExID in a
shared option.</li>
              <li>Abstract Data Type: octetArray</li>
              <li>Data Type Semantics: identifier</li>
              <li>Additional Information: See assigned 32-bit ExIDs at <xref target="IANA-TCP-EXIDs"/>.</li>
              <li>Reference: [This-Document]</li>
            </ul>
          </section>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>IPFIX security considerations are discussed in <xref section="8" sectionFormat="of" target="RFC7012"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>A set of requested IANA actions are described in the main document. These actions are not repeated here.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="IANA-IPFIX" target="https://www.iana.org/assignments/ipfix/ipfix.xhtml">
        <front>
          <title>IP Flow Information Export (IPFIX) Entities</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="IPv6-EH" target="https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#ipv6-parameters-1">
        <front>
          <title>Internet Protocol Version 6 (IPv6) Parameters, IPv6 Extension Header Types</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="IANA-TCP" target="https://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml#tcp-parameters-1">
        <front>
          <title>Transmission Control Protocol (TCP) Parameters, TCP Option Kind Numbers</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="IANA-TCP-EXIDs" target="https://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml#tcp-exids">
        <front>
          <title>Transmission Control Protocol (TCP) Parameters, TCP Experimental Option Experiment Identifiers (TCP ExIDs)</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="RFC6994">
        <front>
          <title>Shared Use of Experimental TCP Options</title>
          <author fullname="J. Touch" initials="J." surname="Touch">
            <organization/>
          </author>
          <date month="August" year="2013"/>
          <abstract>
            <t>This document describes how the experimental TCP option codepoints can concurrently support multiple TCP extensions, even within the same connection, using a new IANA TCP experiment identifier. This approach is robust to experiments that are not registered and to those that do not use this sharing mechanism.  It is recommended for all new TCP options that use these codepoints.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6994"/>
        <seriesInfo name="DOI" value="10.17487/RFC6994"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <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">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <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>
      <reference anchor="RFC7011">
        <front>
          <title>Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information</title>
          <author fullname="B. Claise" initials="B." role="editor" surname="Claise">
            <organization/>
          </author>
          <author fullname="B. Trammell" initials="B." role="editor" surname="Trammell">
            <organization/>
          </author>
          <author fullname="P. Aitken" initials="P." surname="Aitken">
            <organization/>
          </author>
          <date month="September" year="2013"/>
          <abstract>
            <t>This document specifies the IP Flow Information Export (IPFIX) protocol, which serves as a means for transmitting Traffic Flow information over the network.  In order to transmit Traffic Flow information from an Exporting Process to a Collecting Process, a common representation of flow data and a standard means of communicating them are required.  This document describes how the IPFIX Data and Template Records are carried over a number of transport protocols from an IPFIX Exporting Process to an IPFIX Collecting Process.  This document obsoletes RFC 5101.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="77"/>
        <seriesInfo name="RFC" value="7011"/>
        <seriesInfo name="DOI" value="10.17487/RFC7011"/>
      </reference>
      <reference anchor="RFC9293">
        <front>
          <title>Transmission Control Protocol (TCP)</title>
          <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy">
            <organization/>
          </author>
          <date month="August" year="2022"/>
          <abstract>
            <t>This document specifies the Transmission Control Protocol (TCP).  TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet.  Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion.  This document collects and brings those changes together with the protocol specification from RFC 793.  This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793.  It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements.  It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state.  The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="7"/>
        <seriesInfo name="RFC" value="9293"/>
        <seriesInfo name="DOI" value="10.17487/RFC9293"/>
      </reference>
      <reference anchor="RFC7012">
        <front>
          <title>Information Model for IP Flow Information Export (IPFIX)</title>
          <author fullname="B. Claise" initials="B." role="editor" surname="Claise">
            <organization/>
          </author>
          <author fullname="B. Trammell" initials="B." role="editor" surname="Trammell">
            <organization/>
          </author>
          <date month="September" year="2013"/>
          <abstract>
            <t>This document defines the data types and management policy for the information model for the IP Flow Information Export (IPFIX) protocol.  This information model is maintained as the IANA "IPFIX                         Information Elements" registry, the initial contents of which were defined by RFC 5102.  This information model is used by the IPFIX protocol for encoding measured traffic information and information related to the traffic Observation Point, the traffic Metering Process, and the Exporting Process.  Although this model was developed for the IPFIX protocol, it is defined in an open way that allows it to be easily used in other protocols, interfaces, and applications. This document obsoletes RFC 5102.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7012"/>
        <seriesInfo name="DOI" value="10.17487/RFC7012"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Paul Aitken for the review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
fnOMcU8dAAA=

-->

</rfc>
