rfc9870v1.txt   rfc9870.txt 
skipping to change at line 13 skipping to change at line 13
Request for Comments: 9870 Orange Request for Comments: 9870 Orange
Category: Standards Track T. Reddy.K Category: Standards Track T. Reddy.K
ISSN: 2070-1721 Nokia ISSN: 2070-1721 Nokia
September 2025 September 2025
Export of UDP Options Information in IP Flow Information Export (IPFIX) Export of UDP Options Information in IP Flow Information Export (IPFIX)
Abstract Abstract
This document specifies new IP Flow Information Export (IPFIX) This document specifies new IP Flow Information Export (IPFIX)
Information Elements for UDP options. Information Elements for UDP Options.
Status of This Memo Status of This Memo
This is an Internet Standards Track document. This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has (IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841. Internet Standards is available in Section 2 of RFC 7841.
skipping to change at line 79 skipping to change at line 79
IP Flow Information Export (IPFIX) [RFC7011] is a protocol that is IP Flow Information Export (IPFIX) [RFC7011] is a protocol that is
widely deployed in networks for traffic management purposes widely deployed in networks for traffic management purposes
(Section 2 of [RFC6632]). The protocol specifies the encoding of a (Section 2 of [RFC6632]). The protocol specifies the encoding of a
set of basic data types and how the various Information Elements set of basic data types and how the various Information Elements
(IEs) are transmitted. In order to support the export of new Flow- (IEs) are transmitted. In order to support the export of new Flow-
related measurement data, new IEs can be defined and registered in a related measurement data, new IEs can be defined and registered in a
dedicated IANA registry [IANA-IPFIX] for interoperability. dedicated IANA registry [IANA-IPFIX] for interoperability.
This document specifies new IPFIX Information Elements for UDP This document specifies new IPFIX Information Elements for UDP
options (Section 4). A brief overview of UDP options is provided in Options (Section 4). A brief overview of UDP Options is provided in
Section 3. Section 3.
The IE specified in Section 4.1 uses the new abstract data type The IE specified in Section 4.1 uses the new abstract data type
("unsigned256") defined in [RFC9740]. ("unsigned256") defined in [RFC9740].
Transport (including MTU) considerations are discussed in Section 10 Transport (including MTU) considerations are discussed in Section 10
of [RFC7011]. of [RFC7011].
Examples to illustrate the use of the new IPFIX Information Elements Examples to illustrate the use of the new IPFIX Information Elements
are provided in Section 5. are provided in Section 5.
skipping to change at line 120 skipping to change at line 120
3. UDP Options at a Glance 3. UDP Options at a Glance
UDP [RFC0768] does not support an extension mechanism similar to the UDP [RFC0768] does not support an extension mechanism similar to the
options supported by other transport protocols, such as TCP options supported by other transport protocols, such as TCP
[RFC9293], Stream Control Transmission Protocol (SCTP) [RFC9260], or [RFC9293], Stream Control Transmission Protocol (SCTP) [RFC9260], or
Datagram Congestion Control Protocol (DCCP) [RFC4340]. Such a Datagram Congestion Control Protocol (DCCP) [RFC4340]. Such a
mechanism can be useful for various applications, e.g., to discover a mechanism can be useful for various applications, e.g., to discover a
path MTU or share timestamps. To fill that void, [RFC9868] extends path MTU or share timestamps. To fill that void, [RFC9868] extends
UDP with a mechanism to insert extensions in datagrams. To do so, UDP with a mechanism to insert extensions in datagrams. To do so,
and unlike the conventional approach that relies upon transport and unlike the conventional approach that relies upon transport
headers, [RFC9868] uses trailers. Concretely, UDP options are placed headers, [RFC9868] uses trailers. Concretely, UDP Options are placed
in the surplus area (that is, the area of an IP payload that follows in the surplus area (that is, the area of an IP payload that follows
a UDP packet). See Figure 1. An example of the use of UDP options a UDP packet). See Figure 1. An example of the use of UDP Options
for Datagram Packetization Layer Path MTU Discovery (DPLPMTUD) is for Datagram Packetization Layer Path MTU Discovery (DPLPMTUD) is
described in [RFC9869]. described in [RFC9869].
IP transport payload IP transport payload
<-------------------------------------------------> <------------------------------------------------->
+--------+---------+----------------------+------------------+ +--------+---------+----------------------+------------------+
| IP Hdr | UDP Hdr | UDP user data | surplus area | | IP Hdr | UDP Hdr | UDP user data | surplus area |
+--------+---------+----------------------+------------------+ +--------+---------+----------------------+------------------+
<------------------------------> <------------------------------>
UDP Length UDP Length
Figure 1: Surplus Area Figure 1: Surplus Area
Sections 4.1 and 4.2 introduce new IEs to export the observed UDP Sections 4.1 and 4.2 introduce new IEs to export the observed UDP
options. Options.
UDP options are unambiguously identified by means of a 1-byte field, UDP Options are unambiguously identified by means of a 1-byte field,
called "Kind". called "Kind".
Options indicated by Kind values in the range 0-191 are called SAFE Options indicated by Kind values in the range 0-191 are called SAFE
options. Such options can be silently ignored by legacy receivers options. Such options can be silently ignored by legacy receivers
because they do not alter the UDP user data (Section 11 of because they do not alter the UDP user data (Section 11 of
[RFC9868]). SAFE options are exported using the IE defined in [RFC9868]). SAFE options are exported using the IE defined in
Section 4.1. Section 4.1.
Options indicated by Kind values in the range 192-255 are called Options indicated by Kind values in the range 192-255 are called
UNSAFE options. Such options are not safe for legacy receivers to UNSAFE options. Such options are not safe for legacy receivers to
ignore because they alter the UDP user data (Section 12 of ignore because they alter the UDP user data (Section 12 of
[RFC9868]). UNSAFE options are exported using the IE defined in [RFC9868]). UNSAFE options are exported using the IE defined in
Section 4.2. Section 4.2.
UDP options occur per-packet within a Flow and can be inserted at any UDP Options occur per-packet within a Flow and can be inserted at any
time in the Flow. time in the Flow.
[RFC9868] reserves two options for experiments: the Experimental [RFC9868] reserves two options for experiments: the Experimental
(EXP, Kind=127) option for SAFE options and the UNSAFE Experimental (EXP, Kind=127) option for SAFE options and the UNSAFE Experimental
option (UEXP, Kind=254). For both options, Experiment Identifiers option (UEXP, Kind=254). For both options, Experiment Identifiers
(ExIDs) are used to differentiate concurrent use of these options. (ExIDs) are used to differentiate concurrent use of these options.
Known ExIDs are expected to be registered within IANA. Section 4.4 Known ExIDs are expected to be registered within IANA. Section 4.4
specifies a new IPFIX IE to export observed ExIDs in the EXP options. specifies a new IPFIX IE to export observed ExIDs in the EXP options.
Also, Section 4.5 specifies a new IPFIX IE to export observed ExIDs Also, Section 4.5 specifies a new IPFIX IE to export observed ExIDs
in the UEXP options. Only 16-bit ExIDs are supported in [RFC9868]. in the UEXP options. Only 16-bit ExIDs are supported in [RFC9868].
This document does not intend to elaborate operational guidance/ This document does not intend to elaborate operational guidance/
implications of UDP options. The document focuses exclusively on implications of UDP Options. The document focuses exclusively on
exporting observed UDP options in datagrams. exporting observed UDP Options in datagrams.
4. New UDP IPFIX Information Elements 4. New UDP IPFIX Information Elements
Given the Kind structure of SAFE and UNSAFE UDP options, using one Given the Kind structure of SAFE and UNSAFE UDP Options, using one
single IE that would multiplex both types of options will limit the single IE that would multiplex both types of options will limit the
benefits of reduced-size encoding in the presence of UNSAFE options. benefits of reduced-size encoding in the presence of UNSAFE options.
For example, at least 24 octets would be needed to report mandatory For example, at least 24 octets would be needed to report mandatory
SAFE options that are observed in a Flow. In order to use less bits SAFE options that are observed in a Flow. In order to use less bits
to report observed UDP options, distinct IEs are thus defined to to report observed UDP Options, distinct IEs are thus defined to
report SAFE (Section 4.1) and UNSAFE (Section 4.2) UDP options. As report SAFE (Section 4.1) and UNSAFE (Section 4.2) UDP Options. As
further detailed in Section 5.1, only one octet is needed to report further detailed in Section 5.1, only one octet is needed to report
mandatory SAFE options. mandatory SAFE options.
4.1. udpSafeOptions 4.1. udpSafeOptions
Name: udpSafeOptions Name: udpSafeOptions
ElementID: 525 ElementID: 525
Description: Observed SAFE UDP options in a Flow. The information Description: Observed SAFE UDP Options in a Flow. The information
is encoded in a set of bit fields. is encoded in a set of bit fields.
Options are mapped to bits according to their option numbers. UDP Options are mapped to bits according to their option numbers. UDP
option Kind 0 corresponds to the least significant bit in the Option Kind 0 corresponds to the least significant bit in the
udpSafeOptions IE, while Kind 191 corresponds to the 65th most udpSafeOptions IE, while Kind 191 corresponds to the 65th most
significant bit of the IE. The bit is set to 1 if the significant bit of the IE. The bit is set to 1 if the
corresponding SAFE UDP option is observed at least once in the corresponding SAFE UDP Option is observed at least once in the
Flow. The bit is set to 0 if the option is never observed in the Flow. The bit is set to 0 if the option is never observed in the
Flow. The 64 most significant bits MUST be set to 0. Flow. The 64 most significant bits MUST be set to 0.
The reduced-size encoding per Section 6.2 of [RFC7011] is followed The reduced-size encoding per Section 6.2 of [RFC7011] is followed
whenever fewer octets are needed to report observed SAFE UDP whenever fewer octets are needed to report observed SAFE UDP
options. For example, if only option Kinds <= 31 are observed, Options. For example, if only option Kinds <= 31 are observed,
then the value of the udpSafeOptions IE can be encoded as then the value of the udpSafeOptions IE can be encoded as
unsigned32, or if only option Kinds <= 63 are observed, then the unsigned32, or if only option Kinds <= 63 are observed, then the
value of the udpSafeOptions IE can be encoded as unsigned64. value of the udpSafeOptions IE can be encoded as unsigned64.
The presence of udpSafeExIDList is an indication that the SAFE The presence of udpSafeExIDList is an indication that the SAFE
Experimental option is observed in a Flow. The presence of Experimental option is observed in a Flow. The presence of
udpSafeExIDList takes precedence over setting the corresponding udpSafeExIDList takes precedence over setting the corresponding
bit in the udpSafeOptions IE for the same Flow. In order to bit in the udpSafeOptions IE for the same Flow. In order to
optimize the use of the reduced-size encoding in the presence of optimize the use of the reduced-size encoding in the presence of
udpSafeExIDList IE, the Exporter MUST NOT set the EXP flag of the udpSafeExIDList IE, the Exporter MUST NOT set the EXP flag of the
udpSafeOptions IE that is reported for the same Flow to 1. udpSafeOptions IE that is reported for the same Flow to 1.
Abstract Data Type: unsigned256 Abstract Data Type: unsigned256
Data Type Semantics: flags Data Type Semantics: flags
Additional Information: See the "UDP Option Kind Numbers" registry Additional Information: See the "UDP Option Kind Numbers" registry
at [UDP_OPTIONS]. at [UDP_OPTIONS].
See [RFC9868] for more details about UDP options. See [RFC9868] for more details about UDP Options.
Reference: RFC 9870 Reference: RFC 9870
4.2. udpUnsafeOptions 4.2. udpUnsafeOptions
Name: udpUnsafeOptions Name: udpUnsafeOptions
ElementID: 526 ElementID: 526
Description: Observed UNSAFE UDP options in a Flow. The information Description: Observed UNSAFE UDP Options in a Flow. The information
is encoded in a set of bit fields. is encoded in a set of bit fields.
Options are mapped to bits according to their option numbers. UDP Options are mapped to bits according to their option numbers. UDP
option Kind 192 corresponds to the least significant bit in the Option Kind 192 corresponds to the least significant bit in the
udpUnsafeOptions IE, while Kind 255 corresponds to the most udpUnsafeOptions IE, while Kind 255 corresponds to the most
significant bit of the IE. The bit is set to 1 if the significant bit of the IE. The bit is set to 1 if the
corresponding UNSAFE UDP option is observed at least once in the corresponding UNSAFE UDP Option is observed at least once in the
Flow. The bit is set to 0 if the option is never observed in the Flow. The bit is set to 0 if the option is never observed in the
Flow. Flow.
The reduced-size encoding per Section 6.2 of [RFC7011] is followed The reduced-size encoding per Section 6.2 of [RFC7011] is followed
whenever fewer octets are needed to report observed UNSAFE UDP whenever fewer octets are needed to report observed UNSAFE UDP
options. Options.
The presence of udpUnsafeExIDList is an indication that the UNSAFE The presence of udpUnsafeExIDList is an indication that the UNSAFE
Experimental option is observed in a Flow. The presence of Experimental option is observed in a Flow. The presence of
udpUnsafeExIDList takes precedence over setting the corresponding udpUnsafeExIDList takes precedence over setting the corresponding
bit in the udpUnsafeOptions IE for the same Flow. In order to bit in the udpUnsafeOptions IE for the same Flow. In order to
optimize the use of the reduced-size encoding in the presence of optimize the use of the reduced-size encoding in the presence of
udpUnsafeExIDList IE, the Exporter MUST NOT set the UEXP flag of udpUnsafeExIDList IE, the Exporter MUST NOT set the UEXP flag of
the udpUnsafeOptions IE that is reported for the same Flow to 1. the udpUnsafeOptions IE that is reported for the same Flow to 1.
Abstract Data Type: unsigned64 Abstract Data Type: unsigned64
Data Type Semantics: flags Data Type Semantics: flags
Additional Information: See the "UDP Option Kind Numbers" registry Additional Information: See the "UDP Option Kind Numbers" registry
at [UDP_OPTIONS]. at [UDP_OPTIONS].
See [RFC9868] for more details about UDP options. See [RFC9868] for more details about UDP Options.
Reference: RFC 9870 Reference: RFC 9870
4.3. udpExID 4.3. udpExID
Name: udpExID Name: udpExID
ElementID: 527 ElementID: 527
Description: Observed ExID in an Experimental (EXP, Kind=127) option Description: Observed ExID in an Experimental (EXP, Kind=127) option
skipping to change at line 340 skipping to change at line 340
See [RFC9868] for more details about ExIDs. See [RFC9868] for more details about ExIDs.
Reference: RFC 9870 Reference: RFC 9870
5. Examples 5. Examples
5.1. Reduced-Size Encoding 5.1. Reduced-Size Encoding
Given the UDP Kind allocation in Section 10 of [RFC9868] and the Given the UDP Kind allocation in Section 10 of [RFC9868] and the
option mapping defined in Section 4.1 of this document, fewer octets option mapping defined in Section 4.1 of this document, fewer octets
are likely to be used for Flows with mandatory UDP options. are likely to be used for Flows with mandatory UDP Options.
Figure 2 shows an example of the Kind/bit mappings in the Figure 2 shows an example of the Kind/bit mappings in the
udpSafeOptions IE for a Flow in which End of Options List (EOL, udpSafeOptions IE for a Flow in which End of Options List (EOL,
Kind=0) and Additional Payload Checksum (APC, Kind=2) options are Kind=0) and Additional Payload Checksum (APC, Kind=2) options are
observed. Only the bits that corresponds to EOL and APC options are observed. Only the bits that corresponds to EOL and APC options are
set to 1. set to 1.
MSB LSB MSB LSB
1 25 1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5
skipping to change at line 376 skipping to change at line 376
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 3: An Example of the Wire udpSafeOptions IE Value with EOL Figure 3: An Example of the Wire udpSafeOptions IE Value with EOL
and APC Options and APC Options
5.2. SAFE Experimental Option 5.2. SAFE Experimental Option
Let us now consider a UDP Flow in which SAFE Experimental options are Let us now consider a UDP Flow in which SAFE Experimental options are
observed. If a udpSafeOptions IE is exported for this Flow, then observed. If a udpSafeOptions IE is exported for this Flow, then
that IE will have the EXP bit set to 1 (Figure 4). This example does that IE will have the EXP bit set to 1 (Figure 4). This example does
not make any assumption about the presence of other UDP options ("X" not make any assumption about the presence of other UDP Options ("X"
can be set to 0 or 1). can be set to 0 or 1).
MSB LSB MSB LSB
12 25 12 25
0 1 2 3 ... 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5 0 1 2 3 ... 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5
+-+-+-+-+...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+ +-+-+-+-+...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+
|X|X|X|X| |X|X|X|X|X|X|X|X|X|X|X|1|X|X| |X|X|X|X|X|X|X| |X|X|X|X| |X|X|X|X|X|X|X|X|X|X|X|1|X|X| |X|X|X|X|X|X|X|
+-+-+-+-+...+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+ +-+-+-+-+...+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+
Figure 4: An Example of udpSafeOptions with EXP Option Figure 4: An Example of udpSafeOptions with EXP Option
skipping to change at line 428 skipping to change at line 428
Following the guidance in Section 4.1, the reported udpSafeOptions IE Following the guidance in Section 4.1, the reported udpSafeOptions IE
will be set to 0x05 even in the presence of EXP options. will be set to 0x05 even in the presence of EXP options.
6. Security Considerations 6. Security Considerations
This document does not introduce new security considerations other This document does not introduce new security considerations other
than those already discussed in Section 11 of [RFC7011] and Section 8 than those already discussed in Section 11 of [RFC7011] and Section 8
of [RFC7012]. of [RFC7012].
The reader may refer to Section 24 of [RFC9868] for the security The reader may refer to Section 24 of [RFC9868] for the security
considerations related to UDP options. considerations related to UDP Options.
7. IANA Considerations 7. IANA Considerations
7.1. IPFIX Information Elements 7.1. IPFIX Information Elements
IANA has added the following new IEs to the "IPFIX Information IANA has added the following new IEs to the "IPFIX Information
Elements" registry under the "IP Flow Information Export (IPFIX) Elements" registry under the "IP Flow Information Export (IPFIX)
Entities" registry group [IANA-IPFIX]: Entities" registry group [IANA-IPFIX]:
+===========+===================+=========================+ +===========+===================+=========================+
 End of changes. 23 change blocks. 
25 lines changed or deleted 25 lines changed or added

This html diff was produced by rfcdiff 1.48.