rfc9870.original | rfc9870.txt | |||
---|---|---|---|---|
OPSAWG M. Boucadair | Internet Engineering Task Force (IETF) M. Boucadair | |||
Internet-Draft Orange | Request for Comments: 9870 Orange | |||
Intended status: Standards Track T. Reddy.K | Category: Standards Track T. Reddy.K | |||
Expires: 23 January 2025 Nokia | ISSN: 2070-1721 Nokia | |||
22 July 2024 | September 2025 | |||
Export of UDP Options Information in IP Flow Information Export (IPFIX) | Export of UDP Options Information in IP Flow Information Export (IPFIX) | |||
draft-ietf-opsawg-tsvwg-udp-ipfix-14 | ||||
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. | |||
Discussion Venues | ||||
This note is to be removed before publishing as an RFC. | ||||
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 | ||||
https://mailarchive.ietf.org/arch/browse/opsawg/. | ||||
Source for this draft and an issue tracker can be found at | ||||
https://github.com/boucadair/udp-ipfix. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 23 January 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9870. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 | 2. Conventions and Definitions | |||
3. UDP Options at a Glance . . . . . . . . . . . . . . . . . . . 3 | 3. UDP Options at a Glance | |||
4. New UDP IPFIX Information Elements . . . . . . . . . . . . . 5 | 4. New UDP IPFIX Information Elements | |||
4.1. udpSafeOptions . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. udpSafeOptions | |||
4.2. udpUnsafeOptions . . . . . . . . . . . . . . . . . . . . 6 | 4.2. udpUnsafeOptions | |||
4.3. udpExID . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.3. udpExID | |||
4.4. udpSafeExIDList . . . . . . . . . . . . . . . . . . . . . 7 | 4.4. udpSafeExIDList | |||
4.5. udpUnsafeExIDList . . . . . . . . . . . . . . . . . . . . 8 | 4.5. udpUnsafeExIDList | |||
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Examples | |||
5.1. Reduced-size Encoding . . . . . . . . . . . . . . . . . . 8 | 5.1. Reduced-Size Encoding | |||
5.2. SAFE Experimental Option . . . . . . . . . . . . . . . . 9 | 5.2. SAFE Experimental Option | |||
5.3. ExIDs and Reduced-size Encoding . . . . . . . . . . . . . 9 | 5.3. ExIDs and Reduced-Size Encoding | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 7. IANA Considerations | |||
7.1. IPFIX Information Elements . . . . . . . . . . . . . . . 10 | 7.1. IPFIX Information Elements | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 8.1. Normative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 12 | 8.2. Informative References | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 13 | Acknowledgments | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
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 [I-D.ietf-opsawg-ipfix-tcpo-v6eh]. | ("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. | |||
2. Conventions and Definitions | 2. Conventions and Definitions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
skipping to change at page 3, line 30 ¶ | skipping to change at line 107 ¶ | |||
capitals, as shown here. | capitals, as shown here. | |||
This document uses the IPFIX-specific terminology (e.g., Flow) | This document uses the IPFIX-specific terminology (e.g., Flow) | |||
defined in Section 2 of [RFC7011]. As in the base IPFIX | defined in Section 2 of [RFC7011]. As in the base IPFIX | |||
specification [RFC7011], these IPFIX-specific terms have the first | specification [RFC7011], these IPFIX-specific terms have the first | |||
letter of a word capitalized. | letter of a word capitalized. | |||
The document adheres to the naming conventions for Information | The document adheres to the naming conventions for Information | |||
Elements per Section 2.3 of [RFC7012]. | Elements per Section 2.3 of [RFC7012]. | |||
Also, this document uses the terms defined in Section 3 of | Also, this document uses the terms defined in Section 3 of [RFC9868], | |||
[I-D.ietf-tsvwg-udp-options], especially "datagram" and "surplus | especially "datagram" and "surplus area". | |||
area". | ||||
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], SCTP [RFC9260], or DCCP [RFC4340]. Such a mechanism can | [RFC9293], Stream Control Transmission Protocol (SCTP) [RFC9260], or | |||
be useful for various applications, e.g., to discover a path MTU or | Datagram Congestion Control Protocol (DCCP) [RFC4340]. Such a | |||
share timestamps. To fill that void, [I-D.ietf-tsvwg-udp-options] | mechanism can be useful for various applications, e.g., to discover a | |||
extends UDP with a mechanism to insert extensions in datagrams. To | path MTU or share timestamps. To fill that void, [RFC9868] extends | |||
do so, and unlike the conventional approach that relies upon | UDP with a mechanism to insert extensions in datagrams. To do so, | |||
transport headers, [I-D.ietf-tsvwg-udp-options] uses trailers. | and unlike the conventional approach that relies upon transport | |||
Concretely, UDP options are placed in the surplus area (that is, the | headers, [RFC9868] uses trailers. Concretely, UDP options are placed | |||
area of an IP payload that follows a UDP packet). See Figure 1. An | in the surplus area (that is, the area of an IP payload that follows | |||
example of the use of UDP options for Datagram Packetization Layer | a UDP packet). See Figure 1. An example of the use of UDP options | |||
Path Maximum Transmission Unit Discovery (DPLPMTUD) is described in | for Datagram Packetization Layer Path MTU Discovery (DPLPMTUD) is | |||
[I-D.ietf-tsvwg-udp-options-dplpmtud]. | 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 | |||
[I-D.ietf-tsvwg-udp-options]). SAFE options are exported using the | [RFC9868]). SAFE options are exported using the IE defined in | |||
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 | |||
[I-D.ietf-tsvwg-udp-options]). UNSAFE options are exported using the | [RFC9868]). UNSAFE options are exported using the IE defined in | |||
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. | |||
[I-D.ietf-tsvwg-udp-options] reserves two options for experiments: | [RFC9868] reserves two options for experiments: the Experimental | |||
the Experimental option (EXP, Kind=127) for SAFE options and the | (EXP, Kind=127) option for SAFE options and the UNSAFE Experimental | |||
UNSAFE Experimental option (UEXP, Kind=254). For both options, | option (UEXP, Kind=254). For both options, Experiment Identifiers | |||
Experiment Identifiers (ExIDs) are used to differentiate concurrent | (ExIDs) are used to differentiate concurrent use of these options. | |||
use of these options. Known ExIDs are expected to be registered | Known ExIDs are expected to be registered within IANA. Section 4.4 | |||
within IANA. Section 4.4 specifies a new IPFIX IE to export observed | specifies a new IPFIX IE to export observed ExIDs in the EXP options. | |||
ExIDs in the EXP options. Also, Section 4.5 specifies a new IPFIX IE | Also, Section 4.5 specifies a new IPFIX IE to export observed ExIDs | |||
to export observed ExIDs in the UEXP options. Only 16-bit ExIDs are | in the UEXP options. Only 16-bit ExIDs are supported in [RFC9868]. | |||
supported in [I-D.ietf-tsvwg-udp-options]. | ||||
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 | |||
RFC Editor Note: Please update "URL_IANA_UDP_OPTIONS" reference | ||||
with the URL of the "UDP Option Kind Numbers" registry group and | ||||
"URL_IANA_UDP_ExIDs" with the URL of the "UDP Experimental Option | ||||
Experiment Identifiers (UDP ExIDs)" registry that will be created | ||||
by IANA as per Section 25 of [I-D.ietf-tsvwg-udp-options]. | ||||
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 option 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: TBD1 | 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 to 1 the EXP flag of | udpSafeExIDList IE, the Exporter MUST NOT set the EXP flag of the | |||
the udpSafeOptions IE that is reported for the same Flow. | 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 [URL_IANA_UDP_OPTIONS]. | at [UDP_OPTIONS]. | |||
See [I-D.ietf-tsvwg-udp-options] for more details about UDP | See [RFC9868] for more details about UDP options. | |||
options. | ||||
Reference: This-Document | Reference: RFC 9870 | |||
4.2. udpUnsafeOptions | 4.2. udpUnsafeOptions | |||
Name: udpUnsafeOptions | Name: udpUnsafeOptions | |||
ElementID: TBD2 | 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 to 1 the UEXP flag | udpUnsafeExIDList IE, the Exporter MUST NOT set the UEXP flag of | |||
of the udpUnsafeOptions IE that is reported for the same Flow. | 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 [URL_IANA_UDP_OPTIONS]. | at [UDP_OPTIONS]. | |||
See [I-D.ietf-tsvwg-udp-options] for more details about UDP | See [RFC9868] for more details about UDP options. | |||
options. | ||||
Reference: This-Document | Reference: RFC 9870 | |||
4.3. udpExID | 4.3. udpExID | |||
Name: udpExID | Name: udpExID | |||
ElementID: TBD3 | ElementID: 527 | |||
Description: Observed ExID in an Experimental option (EXP, Kind=127) | Description: Observed ExID in an Experimental (EXP, Kind=127) option | |||
or an UNSAFE Experimental option (UEXP, Kind=254). | or an UNSAFE Experimental (UEXP, Kind=254) option. | |||
A basicList of udpExID is used to report udpSafeExIDList and | A basicList of udpExID is used to report udpSafeExIDList and | |||
udpUnsafeExIDList values. | udpUnsafeExIDList values. | |||
Abstract Data Type: unsigned16 | Abstract Data Type: unsigned16 | |||
Data Type Semantics: identifier | Data Type Semantics: identifier | |||
Additional Information: See the "UDP Experimental Option Experiment | Additional Information: See the "TCP/UDP Experimental Option | |||
Identifiers (UDP ExIDs)" registry at [URL_IANA_UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
See [I-D.ietf-tsvwg-udp-options] for more details about ExIDs. | See [RFC9868] for more details about ExIDs. | |||
Reference: This-Document | Reference: RFC 9870 | |||
4.4. udpSafeExIDList | 4.4. udpSafeExIDList | |||
Name: udpSafeExIDList | Name: udpSafeExIDList | |||
ElementID: TBD4 | ElementID: 528 | |||
Description: Observed ExIDs in the Experimental option (EXP, | Description: Observed ExIDs in the Experimental (EXP, Kind=127) | |||
Kind=127). | option. | |||
A basicList of udpExID Information Elements in which each udpExID | A basicList of udpExID Information Elements in which each udpExID | |||
Information Element carries the ExID observed in an EXP option. | Information Element carries the ExID observed in an EXP option. | |||
Abstract Data Type: basicList | Abstract Data Type: basicList | |||
Data Type Semantics: list | Data Type Semantics: list | |||
Additional Information: See the "UDP Experimental Option Experiment | Additional Information: See the "TCP/UDP Experimental Option | |||
Identifiers (UDP ExIDs)" registry at [URL_IANA_UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
See [I-D.ietf-tsvwg-udp-options] for more details about ExIDs. | See [RFC9868] for more details about ExIDs. | |||
Reference: This-Document | Reference: RFC 9870 | |||
4.5. udpUnsafeExIDList | 4.5. udpUnsafeExIDList | |||
Name: udpUnsafeExIDList | Name: udpUnsafeExIDList | |||
ElementID: TBD5 | ElementID: 529 | |||
Description: Observed ExIDs in the UNSAFE Experimental option (UEXP, | Description: Observed ExIDs in the UNSAFE Experimental (UEXP, | |||
Kind=254). | Kind=254) option. | |||
A basicList of udpExID Information Elements in which each udpExID | A basicList of udpExID Information Elements in which each udpExID | |||
Information Element carries the ExID observed in an UEXP option. | Information Element carries the ExID observed in an UEXP option. | |||
Abstract Data Type: basicList | Abstract Data Type: basicList | |||
Data Type Semantics: list | Data Type Semantics: list | |||
Additional Information: See the "UDP Experimental Option Experiment | Additional Information: See the "TCP/UDP Experimental Option | |||
Identifiers (UDP ExIDs)" registry at [URL_IANA_UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
See [I-D.ietf-tsvwg-udp-options] for more details about ExIDs. | See [RFC9868] for more details about ExIDs. | |||
Reference: This-Document | 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 | Given the UDP Kind allocation in Section 10 of [RFC9868] and the | |||
[I-D.ietf-tsvwg-udp-options] and the option mapping defined in | option mapping defined in Section 4.1 of this document, fewer octets | |||
Section 4.1 of this document, fewer octets are likely to be used for | are likely to be used for Flows with mandatory UDP options. | |||
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 Alternate 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+ | |||
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |0|0|0|0|0|1|0|1| | |0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |0|0|0|0|0|1|0|1| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 9, line 45 ¶ | skipping to change at line 388 ¶ | |||
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 | |||
5.3. ExIDs and Reduced-size Encoding | 5.3. ExIDs and Reduced-Size Encoding | |||
Now assume that EOL, APC, EXP, and UEXP options are observed in a | Now assume that EOL, APC, EXP, and UEXP options are observed in a | |||
Flow. Let us also consider that the observed SAFE Experimental | Flow. Let us also consider that the observed SAFE Experimental | |||
options have ExIDs set to 0x9858 and 0xE2D4, and UNSAFE Experimental | options have ExIDs set to 0x9858 and 0xE2D4 and UNSAFE Experimental | |||
options have ExIDs set to 0xC3D9 and 0x1234. Figure 5 shows an | options have ExIDs set to 0xC3D9 and 0x1234. Figure 5 shows an | |||
excerpt of the Data Set encoding with a focus on SAFE Experimental | excerpt of the Data Set encoding with a focus on SAFE Experimental | |||
options have ExIDs. The meaning of the fields is defined in | options that have ExIDs. The fields are defined in [RFC6313]. | |||
[RFC6313]. | ||||
MSB LSB | MSB LSB | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
: ... : | : ... : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 255 | List Length = 9 |semantic=allof | | | 255 | List Length = 9 |semantic=allof | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| udpExID = TBD3 | Field Length = 2 | | | udpExID = 527 | Field Length = 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SAFE ExID = 0x9858 | SAFE ExID = 0xE2D4 | | | SAFE ExID = 0x9858 | SAFE ExID = 0xE2D4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 255 | List Length = 9 |semantic=allof | | | 255 | List Length = 9 |semantic=allof | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| udpExID = TBD3 | Field Length = 2 | | | udpExID = 527 | Field Length = 2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| UNSAFE ExID = 0xC3D9 | UNSAFE ExID = 0x1234 | | | UNSAFE ExID = 0xC3D9 | UNSAFE ExID = 0x1234 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
: ... : | : ... : | |||
Figure 5: Example of UDP Experimental Option ExID IEs | Figure 5: Example of UDP Experimental Option ExID IEs | |||
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 [I-D.ietf-tsvwg-udp-options] | The reader may refer to Section 24 of [RFC9868] for the security | |||
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 | |||
This document requests IANA to add the following new IEs to the | IANA has added the following new IEs to the "IPFIX Information | |||
"IPFIX Information Elements" registry under the "IP Flow Information | Elements" registry under the "IP Flow Information Export (IPFIX) | |||
Export (IPFIX) Entities" registry group [IANA-IPFIX]: | Entities" registry group [IANA-IPFIX]: | |||
+===========+===================+==============================+ | ||||
| ElementID | Name | Specification | | ||||
+===========+===================+==============================+ | ||||
| TBD1 | udpSafeOptions | Section 4.1 of This-Document | | ||||
+-----------+-------------------+------------------------------+ | ||||
| TBD2 | udpUnsafeOptions | Section 4.2 of This-Document | | ||||
+-----------+-------------------+------------------------------+ | ||||
| TBD3 | udpExID | Section 4.3 of This-Document | | ||||
+-----------+-------------------+------------------------------+ | ||||
| TBD4 | udpSafeExIDList | Section 4.4 of This-Document | | ||||
+-----------+-------------------+------------------------------+ | ||||
| TBD5 | udpUnsafeExIDList | Section 4.5 of This-Document | | ||||
+-----------+-------------------+------------------------------+ | ||||
Table 1: New IPFIX Information Elements | ||||
udpSafeOptions uses the abstract data type ("unsigned256") defined | +===========+===================+=========================+ | |||
in [I-D.ietf-opsawg-ipfix-tcpo-v6eh]. | | ElementID | Name | Reference | | |||
+===========+===================+=========================+ | ||||
| 525 | udpSafeOptions | Section 4.1 of RFC 9870 | | ||||
+-----------+-------------------+-------------------------+ | ||||
| 526 | udpUnsafeOptions | Section 4.2 of RFC 9870 | | ||||
+-----------+-------------------+-------------------------+ | ||||
| 527 | udpExID | Section 4.3 of RFC 9870 | | ||||
+-----------+-------------------+-------------------------+ | ||||
| 528 | udpSafeExIDList | Section 4.4 of RFC 9870 | | ||||
+-----------+-------------------+-------------------------+ | ||||
| 529 | udpUnsafeExIDList | Section 4.5 of RFC 9870 | | ||||
+-----------+-------------------+-------------------------+ | ||||
Note to IANA: The "Specification" column points to the sections | Table 1: New IPFIX Information Elements | |||
with the required information to register each IE. | ||||
Note to the RFC Editor: Please remove the IANA note once IANA | udpSafeOptions uses the abstract data type ("unsigned256") defined in | |||
actions are implemented. | [RFC9740]. | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[I-D.ietf-opsawg-ipfix-tcpo-v6eh] | ||||
Boucadair, M. and B. Claise, "Extended TCP Options and | ||||
IPv6 Extension Headers IPFIX Information Elements", Work | ||||
in Progress, Internet-Draft, draft-ietf-opsawg-ipfix-tcpo- | ||||
v6eh-17, 5 July 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- | ||||
ipfix-tcpo-v6eh-17>. | ||||
[I-D.ietf-tsvwg-udp-options] | ||||
Touch, J. D., "Transport Options for UDP", Work in | ||||
Progress, Internet-Draft, draft-ietf-tsvwg-udp-options-32, | ||||
21 March 2024, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-tsvwg-udp-options-32>. | ||||
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | |||
DOI 10.17487/RFC0768, August 1980, | DOI 10.17487/RFC0768, August 1980, | |||
<https://www.rfc-editor.org/rfc/rfc768>. | <https://www.rfc-editor.org/info/rfc768>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/rfc/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, | [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, | |||
"Export of Structured Data in IP Flow Information Export | "Export of Structured Data in IP Flow Information Export | |||
(IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011, | (IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011, | |||
<https://www.rfc-editor.org/rfc/rfc6313>. | <https://www.rfc-editor.org/info/rfc6313>. | |||
[RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, | [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, | |||
"Specification of the IP Flow Information Export (IPFIX) | "Specification of the IP Flow Information Export (IPFIX) | |||
Protocol for the Exchange of Flow Information", STD 77, | Protocol for the Exchange of Flow Information", STD 77, | |||
RFC 7011, DOI 10.17487/RFC7011, September 2013, | RFC 7011, DOI 10.17487/RFC7011, September 2013, | |||
<https://www.rfc-editor.org/rfc/rfc7011>. | <https://www.rfc-editor.org/info/rfc7011>. | |||
[RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model | [RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model | |||
for IP Flow Information Export (IPFIX)", RFC 7012, | for IP Flow Information Export (IPFIX)", RFC 7012, | |||
DOI 10.17487/RFC7012, September 2013, | DOI 10.17487/RFC7012, September 2013, | |||
<https://www.rfc-editor.org/rfc/rfc7012>. | <https://www.rfc-editor.org/info/rfc7012>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
8.2. Informative References | [RFC9740] Boucadair, M. and B. Claise, "New IPFIX Information | |||
Elements for TCP Options and IPv6 Extension Headers", | ||||
RFC 9740, DOI 10.17487/RFC9740, March 2025, | ||||
<https://www.rfc-editor.org/info/rfc9740>. | ||||
[I-D.ietf-tsvwg-udp-options-dplpmtud] | [RFC9868] Touch, J. and C. Heard, Ed., "Transport Options for UDP", | |||
Fairhurst, G. and T. Jones, "Datagram PLPMTUD for UDP | RFC 9868, DOI 10.17487/RFC9868, September 2025, | |||
Options", Work in Progress, Internet-Draft, draft-ietf- | <https://www.rfc-editor.org/info/rfc9868>. | |||
tsvwg-udp-options-dplpmtud-12, 7 May 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | 8.2. Informative References | |||
udp-options-dplpmtud-12>. | ||||
[IANA-IPFIX] | [IANA-IPFIX] | |||
"IP Flow Information Export (IPFIX) Entities", n.d., | IANA, "IP Flow Information Export (IPFIX) Entities", | |||
<https://www.iana.org/assignments/ipfix/ipfix.xhtml>. | <https://www.iana.org/assignments/ipfix>. | |||
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | |||
Congestion Control Protocol (DCCP)", RFC 4340, | Congestion Control Protocol (DCCP)", RFC 4340, | |||
DOI 10.17487/RFC4340, March 2006, | DOI 10.17487/RFC4340, March 2006, | |||
<https://www.rfc-editor.org/rfc/rfc4340>. | <https://www.rfc-editor.org/info/rfc4340>. | |||
[RFC6632] Ersue, M., Ed. and B. Claise, "An Overview of the IETF | [RFC6632] Ersue, M., Ed. and B. Claise, "An Overview of the IETF | |||
Network Management Standards", RFC 6632, | Network Management Standards", RFC 6632, | |||
DOI 10.17487/RFC6632, June 2012, | DOI 10.17487/RFC6632, June 2012, | |||
<https://www.rfc-editor.org/rfc/rfc6632>. | <https://www.rfc-editor.org/info/rfc6632>. | |||
[RFC9260] Stewart, R., Tüxen, M., and K. Nielsen, "Stream Control | [RFC9260] Stewart, R., Tüxen, M., and K. Nielsen, "Stream Control | |||
Transmission Protocol", RFC 9260, DOI 10.17487/RFC9260, | Transmission Protocol", RFC 9260, DOI 10.17487/RFC9260, | |||
June 2022, <https://www.rfc-editor.org/rfc/rfc9260>. | June 2022, <https://www.rfc-editor.org/info/rfc9260>. | |||
[RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | |||
STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, | STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, | |||
<https://www.rfc-editor.org/rfc/rfc9293>. | <https://www.rfc-editor.org/info/rfc9293>. | |||
[URL_IANA_UDP_ExIDs] | [RFC9869] Fairhurst, G. and T. Jones, "Datagram Packetization Layer | |||
"UDP Experimental Option Experiment Identifiers (UDP | Path MTU Discovery (DPLPMTUD) for UDP Options", RFC 9869, | |||
ExIDs)", n.d., <https://www.iana.org/assignments/url2>. | DOI 10.17487/RFC9869, September 2025, | |||
<https://www.rfc-editor.org/info/rfc9869>. | ||||
[URL_IANA_UDP_OPTIONS] | [UDP_ExIDs] | |||
"UDP Option Kind Numbers", n.d., | IANA, "TCP/UDP Experimental Option Experiment Identifiers | |||
<https://www.iana.org/assignments/url1>. | (TCP/UDP ExIDs)", <https://www.iana.org/assignments/udp>. | |||
[UDP_OPTIONS] | ||||
IANA, "UDP Option Kind Numbers", | ||||
<https://www.iana.org/assignments/udp>. | ||||
Acknowledgments | Acknowledgments | |||
Thanks to Benoît Claise for the discussion on the ordering of IPFIX | Thanks to Benoît Claise for the discussion on the ordering of IPFIX | |||
IEs. Thanks to Paul Aitken for the review and comments. | IEs. Thanks to Paul Aitken for the review and comments. | |||
Thanks to Tommy Pauly for the tsvart review, Joe Touch for the intdir | Thanks to Tommy Pauly for the TSVART review, Joe Touch for the INTDIR | |||
review, Robert Sparks for the genart review, Watson Ladd for the | review, Robert Sparks for the GENART review, Watson Ladd for the | |||
secdir review, and Jouni Korhonen for the opsdir review. | SECDIR review, and Jouni Korhonen for the OPSDIR review. | |||
Thanks to Thomas Graf for the Shepherd review. | Thanks to Thomas Graf for the shepherd review. | |||
Thanks to Mahesh Jethanandani for the AD review. | Thanks to Mahesh Jethanandani for the AD review. | |||
Thanks to Éric Vyncke, Roman Danyliw, and Zahed Sarker for the IESG | Thanks to Éric Vyncke, Roman Danyliw, and Zahed Sarker for the IESG | |||
review. | review. | |||
Authors' Addresses | Authors' Addresses | |||
Mohamed Boucadair | Mohamed Boucadair | |||
Orange | Orange | |||
End of changes. 78 change blocks. | ||||
218 lines changed or deleted | 178 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |