rfc9870v2.txt   rfc9870.txt 
skipping to change at line 143 skipping to change at line 143
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.
skipping to change at line 207 skipping to change at line 207
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
skipping to change at line 247 skipping to change at line 247
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
skipping to change at line 271 skipping to change at line 271
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.
skipping to change at line 344 skipping to change at line 344
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.
 End of changes. 23 change blocks. 
27 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.48.