| rfc9870v1.txt | rfc9870.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) M. Boucadair | Internet Engineering Task Force (IETF) M. Boucadair | |||
| 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 | October 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 | (UEXP, Kind=254) Option. 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 | |||
| or an UNSAFE Experimental (UEXP, Kind=254) option. | 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 "TCP/UDP Experimental Option | Additional Information: See the "TCP/UDP Experimental Option | |||
| Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
| skipping to change at line 295 ¶ | skipping to change at line 295 ¶ | |||
| Reference: RFC 9870 | Reference: RFC 9870 | |||
| 4.4. udpSafeExIDList | 4.4. udpSafeExIDList | |||
| Name: udpSafeExIDList | Name: udpSafeExIDList | |||
| ElementID: 528 | ElementID: 528 | |||
| Description: Observed ExIDs in the Experimental (EXP, Kind=127) | Description: Observed ExIDs in the Experimental (EXP, Kind=127) | |||
| option. | 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 "TCP/UDP Experimental Option | Additional Information: See the "TCP/UDP Experimental Option | |||
| Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
| See [RFC9868] for more details about ExIDs. | See [RFC9868] for more details about ExIDs. | |||
| Reference: RFC 9870 | Reference: RFC 9870 | |||
| 4.5. udpUnsafeExIDList | 4.5. udpUnsafeExIDList | |||
| Name: udpUnsafeExIDList | Name: udpUnsafeExIDList | |||
| ElementID: 529 | ElementID: 529 | |||
| Description: Observed ExIDs in the UNSAFE Experimental (UEXP, | Description: Observed ExIDs in the UNSAFE Experimental (UEXP, | |||
| Kind=254) option. | 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 "TCP/UDP Experimental Option | Additional Information: See the "TCP/UDP Experimental Option | |||
| Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | Experiment Identifiers (TCP/UDP ExIDs)" registry at [UDP_ExIDs]. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+ | |||
| |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| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-++-+-+-+-+...+-+-+-+-+-+-+-+-+ | |||
| Figure 2: An Example of udpSafeOptions IE with EOL and APC Options | Figure 2: An Example of udpSafeOptions IE with EOL and APC Options | |||
| skipping to change at line 373 ¶ | skipping to change at line 373 ¶ | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |0|0|0|0|0|1|0|1| | |0|0|0|0|0|1|0|1| | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| 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 | |||
| 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 that have ExIDs. The fields are defined in [RFC6313]. | Options that have ExIDs. The fields are defined in [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 = 527 | Field Length = 2 | | | udpExID = 527 | Field Length = 2 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at line 419 ¶ | skipping to change at line 419 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | udpExID = 527 | 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 [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]: | |||
| +===========+===================+=========================+ | +===========+===================+=========================+ | |||
| skipping to change at line 496 ¶ | skipping to change at line 496 ¶ | |||
| [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/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC9740] Boucadair, M. and B. Claise, "New IPFIX Information | [RFC9740] Boucadair, M. and B. Claise, "New IPFIX Information | |||
| Elements for TCP Options and IPv6 Extension Headers", | Elements for TCP Options and IPv6 Extension Headers", | |||
| RFC 9740, DOI 10.17487/RFC9740, March 2025, | RFC 9740, DOI 10.17487/RFC9740, March 2025, | |||
| <https://www.rfc-editor.org/info/rfc9740>. | <https://www.rfc-editor.org/info/rfc9740>. | |||
| [RFC9868] Touch, J. and C. Heard, Ed., "Transport Options for UDP", | [RFC9868] Touch, J. and C. Heard, Ed., "Transport Options for UDP", | |||
| RFC 9868, DOI 10.17487/RFC9868, September 2025, | RFC 9868, DOI 10.17487/RFC9868, October 2025, | |||
| <https://www.rfc-editor.org/info/rfc9868>. | <https://www.rfc-editor.org/info/rfc9868>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [IANA-IPFIX] | [IANA-IPFIX] | |||
| IANA, "IP Flow Information Export (IPFIX) Entities", | IANA, "IP Flow Information Export (IPFIX) Entities", | |||
| <https://www.iana.org/assignments/ipfix>. | <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, | |||
| skipping to change at line 525 ¶ | skipping to change at line 525 ¶ | |||
| [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/info/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/info/rfc9293>. | <https://www.rfc-editor.org/info/rfc9293>. | |||
| [RFC9869] Fairhurst, G. and T. Jones, "Datagram Packetization Layer | [RFC9869] Fairhurst, G. and T. Jones, "Datagram Packetization Layer | |||
| Path MTU Discovery (DPLPMTUD) for UDP Options", RFC 9869, | Path MTU Discovery (DPLPMTUD) for UDP Options", RFC 9869, | |||
| DOI 10.17487/RFC9869, September 2025, | DOI 10.17487/RFC9869, October 2025, | |||
| <https://www.rfc-editor.org/info/rfc9869>. | <https://www.rfc-editor.org/info/rfc9869>. | |||
| [UDP_ExIDs] | [UDP_ExIDs] | |||
| IANA, "TCP/UDP Experimental Option Experiment Identifiers | IANA, "TCP/UDP Experimental Option Experiment Identifiers | |||
| (TCP/UDP ExIDs)", <https://www.iana.org/assignments/udp>. | (TCP/UDP ExIDs)", <https://www.iana.org/assignments/udp>. | |||
| [UDP_OPTIONS] | [UDP_OPTIONS] | |||
| IANA, "UDP Option Kind Numbers", | IANA, "UDP Option Kind Numbers", | |||
| <https://www.iana.org/assignments/udp>. | <https://www.iana.org/assignments/udp>. | |||
| End of changes. 48 change blocks. | ||||
| 55 lines changed or deleted | 55 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||