<?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.19 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boucadair-opsawg-tsvwg-udp-ipfix-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="IPFIX IE for UDP Options">Export of UDP Options Inforamtion in IP Flow Information Export (IPFIX)</title>
    <seriesInfo name="Internet-Draft" value="draft-boucadair-opsawg-tsvwg-udp-ipfix-00"/>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <city>Rennes</city>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2023" month="January" day="18"/>
    <area>Operations and Management</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>surplus area</keyword>
    <keyword>UDP options</keyword>
    <abstract>
      <t>This document specifies a new IP Flow Information Export (IPFIX) Information Element for UDP options.</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/udp-ipfix"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>IP Flow Information Export (IPFIX) <xref target="RFC7011"/> is a protocol that is widely deployed in operators networks for traffic management purposes. The protocol specifies the encoding of a set of basic data types and how the various Information Elements (IEs) are transmitted. In order to support the export of new flow-related measurement data, new IEs can be defined and registered in a dedicated IANA registry <xref target="IANA-IPFIX"/> for interoperability.</t>
      <t>This document specifies a new IPFIX Information Element for UDP options (<xref target="IANA"/>). A brief overview of UDP option is provided in <xref target="uo"/>.</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 terms defined in Section 3 of <xref target="I-D.ietf-tsvwg-udp-options"/> and <xref target="RFC7011"/>.</t>
      <section anchor="uo">
        <name>UDP Options at a Glance</name>
        <t>UDP <xref target="RFC0768"/> does not support an extension mechanism similar to the options supported by other transport protocols, such as TCP <xref target="RFC9293"/>, SCTP <xref target="RFC9260"/>, or DCCP <xref target="RFC4340"/>. Such a mechanism can be useful for various applications, e.g., discover a path MTU or share timestamps. To fill that void, <xref target="I-D.ietf-tsvwg-udp-options"/> extends UDP with a mechanism to insert extensions in datagrams. To do so, and unlike the conventional approach that relies upon transport headers, <xref target="I-D.ietf-tsvwg-udp-options"/> uses trailers. Concretely, UDP options are placed in the surplus area (that is, the area of an IP payload that follows a UDP packet). See <xref target="spa"/>. An example of the use of UDP options is described in <xref target="I-D.ietf-tsvwg-udp-options-dplpmtud"/>.</t>
        <figure anchor="spa">
          <name>Surplus Area</name>
          <artwork align="center"><![CDATA[
                       IP transport payload
          <------------------------------------------------->
+--------+---------+----------------------+------------------+
| IP Hdr | UDP Hdr |     UDP user data    |   surplus area   |
+--------+---------+----------------------+------------------+
          <------------------------------>
                     UDP Length
]]></artwork>
        </figure>
        <t>This document does not intend to elaborate operational guidance/implications of UDP options. The document focuses exclusively on exporting observed UDP options in datagrams. The motivation for exporting such data is similar to the one for exporting TCP options (tcpOptions IE) or IPv6 Extension Headers (ipv6ExtensionHeaders).</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document does not introduce new security considerations other than those already discussed in <xref target="RFC7012"/>.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document requests IANA to add the following new IE to the IANA registry entitled "IP Flow Information Export (IPFIX) Entities" <xref target="IANA-IPFIX"/>.</t>
      <ul spacing="normal">
        <li>Name:  udpOptions</li>
        <li>ElementID:  TBD1</li>
        <li>Description: Observed UDP options of a Flow.  The information is encoded in a set of bit fields. Options are mapped to bits according to their option numbers.
    Option number X is mapped to bit X. A bit is set to 1 (or 0) if the corresponding UDP option is observed (or not).</li>
        <li>Abstract Data Type:  unsigned8</li>
        <li>Data Type Semantics:  flags</li>
        <li>Additional Information:  <xref target="I-D.ietf-tsvwg-udp-options"/>.  See the assignments in the "xxxx" IANA registry at URL_IANA_UDP_OPTIONS.</li>
        <li>Reference:  [This-Document]</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="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="I-D.ietf-tsvwg-udp-options">
          <front>
            <title>Transport Options for UDP</title>
            <author fullname="Dr. Joseph D. Touch" initials="J. D." surname="Touch">
              <organization>Independent Consultant</organization>
            </author>
            <date day="27" month="December" year="2022"/>
            <abstract>
              <t>   Transport protocols are extended through the use of transport header
   options. This document extends UDP by indicating the location,
   syntax, and semantics for UDP transport layer options.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-udp-options-19"/>
        </reference>
        <reference anchor="RFC0768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel">
              <organization/>
            </author>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </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>
      <references>
        <name>Informative 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/>
            </author>
            <date>n.d.</date>
          </front>
        </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="RFC9260">
          <front>
            <title>Stream Control Transmission Protocol</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart">
              <organization/>
            </author>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen">
              <organization/>
            </author>
            <author fullname="K. Nielsen" initials="K." surname="Nielsen">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document describes the Stream Control Transmission Protocol (SCTP) and obsoletes RFC 4960.  It incorporates the specification of the chunk flags registry from RFC 6096 and the specification of the I bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are also obsoleted by this document. In addition, RFCs 4460 and 8540, which describe errata for SCTP, are obsoleted by this document. </t>
              <t>SCTP was originally designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks. It is also suited to be used for other applications, for example, WebRTC.</t>
              <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network, such as IP. It offers the following services to its users:</t>
              <t>The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9260"/>
          <seriesInfo name="DOI" value="10.17487/RFC9260"/>
        </reference>
        <reference anchor="RFC4340">
          <front>
            <title>Datagram Congestion Control Protocol (DCCP)</title>
            <author fullname="E. Kohler" initials="E." surname="Kohler">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="S. Floyd" initials="S." surname="Floyd">
              <organization/>
            </author>
            <date month="March" year="2006"/>
            <abstract>
              <t>The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams.  DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4340"/>
          <seriesInfo name="DOI" value="10.17487/RFC4340"/>
        </reference>
        <reference anchor="I-D.ietf-tsvwg-udp-options-dplpmtud">
          <front>
            <title>Datagram PLPMTUD for UDP Options</title>
            <author fullname="Gorry Fairhurst" initials="G." surname="Fairhurst">
              <organization>University of Aberdeen</organization>
            </author>
            <author fullname="Tom Jones" initials="T." surname="Jones">
              <organization>University of Aberdeen</organization>
            </author>
            <date day="9" month="September" year="2022"/>
            <abstract>
              <t>   This document specifies how a UDP Options sender implements Datagram
   Packetization Layer Path Maximum Transmission Unit Discovery
   (DPLPMTUD) as a robust method for Path Maximum Transmission Unit
   discovery.  This method uses the UDP Options packetization layer.  It
   allows a datagram application to discover the largest size of
   datagram that can be sent across a specific network path.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-udp-options-dplpmtud-04"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
hojaeiQ64n8DGpWsrsoRAAA=

-->

</rfc>
