draft-ietf-opsawg-ipfix-tcpo-v6eh-15.txt   draft-ietf-opsawg-ipfix-tcpo-v6eh-17.txt 
OPSAWG M. Boucadair OPSAWG M. Boucadair
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track B. Claise Intended status: Standards Track B. Claise
Expires: 24 November 2024 Huawei Expires: 6 January 2025 Huawei
23 May 2024 5 July 2024
Extended TCP Options and IPv6 Extension Headers IPFIX Information Extended TCP Options and IPv6 Extension Headers IPFIX Information
Elements Elements
draft-ietf-opsawg-ipfix-tcpo-v6eh-15 draft-ietf-opsawg-ipfix-tcpo-v6eh-17
Abstract Abstract
This document specifies new IP Flow Information Export (IPFIX) This document specifies new IP Flow Information Export (IPFIX)
Information Elements (IEs) to solve issues with existing Information Elements (IEs) to solve issues with existing
ipv6ExtensionHeaders and tcpOptions IPFIX IEs, especially the ability ipv6ExtensionHeaders and tcpOptions IPFIX IEs, especially the ability
to export any observed IPv6 extension headers or TCP options. to export any observed IPv6 extension headers or TCP options.
Discussion Venues Discussion Venues
skipping to change at page 1, line 47 skipping to change at page 1, line 47
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 24 November 2024. This Internet-Draft will expire on 6 January 2025.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2024 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 (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 33 skipping to change at page 2, line 33
1.2. Issues with tcpOptions Information Element . . . . . . . 4 1.2. Issues with tcpOptions Information Element . . . . . . . 4
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4
3. Information Elements for IPv6 Extension Headers . . . . . . . 5 3. Information Elements for IPv6 Extension Headers . . . . . . . 5
3.1. ipv6ExtensionHeaderType Information Element . . . . . . . 5 3.1. ipv6ExtensionHeaderType Information Element . . . . . . . 5
3.2. ipv6ExtensionHeaderCount Information Element . . . . . . 5 3.2. ipv6ExtensionHeaderCount Information Element . . . . . . 5
3.3. ipv6ExtensionHeadersFull Information Element . . . . . . 6 3.3. ipv6ExtensionHeadersFull Information Element . . . . . . 6
3.4. ipv6ExtensionHeaderTypeCountList Information Element . . 7 3.4. ipv6ExtensionHeaderTypeCountList Information Element . . 7
3.5. ipv6ExtensionHeadersLimit Information Element . . . . . . 8 3.5. ipv6ExtensionHeadersLimit Information Element . . . . . . 8
3.6. ipv6ExtensionHeadersChainLength Information Element . . . 9 3.6. ipv6ExtensionHeadersChainLength Information Element . . . 9
3.7. ipv6ExtensionHeaderChainLengthList Information Element . 10 3.7. ipv6ExtensionHeaderChainLengthList Information Element . 10
4. Information Elements for TCP Options . . . . . . . . . . . . 11 4. Information Elements for TCP Options . . . . . . . . . . . . 10
4.1. tcpOptionsFull Information Element . . . . . . . . . . . 11 4.1. tcpOptionsFull Information Element . . . . . . . . . . . 10
4.2. tcpSharedOptionExID16 Information Element . . . . . . . . 12 4.2. tcpSharedOptionExID16 Information Element . . . . . . . . 11
4.3. tcpSharedOptionExID32 Information Element . . . . . . . . 12 4.3. tcpSharedOptionExID32 Information Element . . . . . . . . 12
4.4. tcpSharedOptionExID16List Information Element . . . . . . 13 4.4. tcpSharedOptionExID16List Information Element . . . . . . 13
4.5. tcpSharedOptionExID32List Information Element . . . . . . 13 4.5. tcpSharedOptionExID32List Information Element . . . . . . 13
5. Operational Considerations . . . . . . . . . . . . . . . . . 14 5. Implementation and Operational Considerations . . . . . . . . 14
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 14 6.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 14
6.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 15 6.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1. Reduced-size Encoding . . . . . . . . . . . . . . . . 15 6.2.1. Reduced-size Encoding . . . . . . . . . . . . . . . . 15
6.2.2. Shared Options . . . . . . . . . . . . . . . . . . . 16 6.2.2. Shared Options . . . . . . . . . . . . . . . . . . . 16
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information 8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information
Elements . . . . . . . . . . . . . . . . . . . . . . . . 17 Elements . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2. IPFIX Information Elements . . . . . . . . . . . . . . . 17 8.2. IPFIX Information Elements . . . . . . . . . . . . . . . 18
8.3. IPFIX Information Element Data Type . . . . . . . . . . . 18 8.3. IPFIX Information Element Data Type . . . . . . . . . . . 19
8.3.1. unsigned256 . . . . . . . . . . . . . . . . . . . . . 19 8.3.1. unsigned256 . . . . . . . . . . . . . . . . . . . . . 20
8.4. IPFIX Subregistry for IPv6 Extension Headers . . . . . . 19 8.4. IPFIX Subregistry for IPv6 Extension Headers . . . . . . 20
8.4.1. Initial Values . . . . . . . . . . . . . . . . . . . 20 8.4.1. Initial Values . . . . . . . . . . . . . . . . . . . 21
8.4.2. Guidelines for the Designated Experts . . . . . . . . 22 8.4.2. Guidelines for the Designated Experts . . . . . . . . 23
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.1. Normative References . . . . . . . . . . . . . . . . . . 22 9.1. Normative References . . . . . . . . . . . . . . . . . . 23
9.2. Informative References . . . . . . . . . . . . . . . . . 23 9.2. Informative References . . . . . . . . . . . . . . . . . 24
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 24 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
This document specifies new IP Flow Information Export (IPFIX) This document specifies new IP Flow Information Export (IPFIX)
[RFC7011] Information Elements (IEs) to solve a set of issues [RFC7011] Information Elements (IEs) to solve a set of issues
encountered with the specifications of ipv6ExtensionHeaders (to encountered with the specifications of ipv6ExtensionHeaders (to
export IPv6 extension headers) and tcpOptions (to export TCP options) export IPv6 extension headers) and tcpOptions (to export TCP options)
IEs [IANA-IPFIX]. More details about these issues are provided in IEs [IANA-IPFIX]. More details about these issues are provided in
the following sub-sections. the following sub-sections.
skipping to change at page 3, line 47 skipping to change at page 3, line 47
example, the ipv6ExtensionHeaders IE can't report some IPv6 EHs, example, the ipv6ExtensionHeaders IE can't report some IPv6 EHs,
specifically EHs for Host Identity Protocol (139), Shim6 Protocol specifically EHs for Host Identity Protocol (139), Shim6 Protocol
(140) or extension headers for experimentation and testing. (140) or extension headers for experimentation and testing.
* Specify whether the exported values match the full enclosed values * Specify whether the exported values match the full enclosed values
or only up to a limit imposed by hardware or software (e.g., or only up to a limit imposed by hardware or software (e.g.,
Section 1.1 of [RFC8883]). Note that some implementations may not Section 1.1 of [RFC8883]). Note that some implementations may not
be able to export all observed extension headers in a Flow because be able to export all observed extension headers in a Flow because
of a hardware or software limit (see, e.g., of a hardware or software limit (see, e.g.,
[I-D.ietf-6man-eh-limits]). The specification of the [I-D.ietf-6man-eh-limits]). The specification of the
ipv6ExtensionHeaders Information Element does not discuss whether ipv6ExtensionHeaders IE does not discuss whether it covers all
it covers all enclosed extension headers or only up to a limit. enclosed extension headers or only up to a limit.
* Specify how to report the length of IPv6 extension headers. * Specify how to report the length of IPv6 extension headers.
* Optimize the encoding. * Optimize the encoding.
* Explain the reasoning for reporting values which do not correspond * Explain the reasoning for reporting values which do not correspond
to extension headers (e.g., "Unknown Layer 4 header" or "Payload to extension headers (e.g., "Unknown Layer 4 header" or "Payload
compression header"). compression header").
* Specify how to report extension header chains or aggregate * Specify how to report extension header chains or aggregate
skipping to change at page 5, line 27 skipping to change at page 5, line 27
extension header type codes. extension header type codes.
3. Information Elements for IPv6 Extension Headers 3. Information Elements for IPv6 Extension Headers
3.1. ipv6ExtensionHeaderType Information Element 3.1. ipv6ExtensionHeaderType Information Element
Name: ipv6ExtensionHeaderType Name: ipv6ExtensionHeaderType
ElementID: TBD1 ElementID: TBD1
Description: Type of an IPv6 extension header observed in packets of Description: Type of an IPv6 extension header observed in at least
this Flow. one packet of this Flow.
Abstract Data Type: unsigned8 Abstract Data Type: unsigned8
Data Type Semantics: identifier Data Type Semantics: identifier
Additional Information: See the IPv6 Extension Header Types registry Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH]. at [IANA-EH].
See Section 4 of [RFC8200] for the general definition of IPv6 See Section 4 of [RFC8200] for the general definition of IPv6
extension headers. extension headers.
skipping to change at page 5, line 51 skipping to change at page 5, line 51
3.2. ipv6ExtensionHeaderCount Information Element 3.2. ipv6ExtensionHeaderCount Information Element
Name: ipv6ExtensionHeaderCount Name: ipv6ExtensionHeaderCount
ElementID: TBD2 ElementID: TBD2
Description: The number of consecutive occurrences of the same Description: The number of consecutive occurrences of the same
extension header type in a Flow. extension header type in a Flow.
This IE is reported, e.g., in the ipv6ExtensionHeaderTypeCountList
IE.
The type of the extension header is provided in the The type of the extension header is provided in the
ipv6ExtensionHeaderType Information Element. ipv6ExtensionHeaderType IE.
Abstract Data Type: unsigned8 Abstract Data Type: unsigned8
Data Type Semantics: totalCounter Data Type Semantics: totalCounter
Additional Information: See the IPv6 Extension Header Types registry Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH]. at [IANA-EH].
See Section 4 of [RFC8200] for the general definition of IPv6 See Section 4 of [RFC8200] for the general definition of IPv6
extension headers. extension headers.
skipping to change at page 6, line 38 skipping to change at page 6, line 41
packet of this Flow contains the respective IPv6 extension header, packet of this Flow contains the respective IPv6 extension header,
the value of the corresponding bit is 0. the value of the corresponding bit is 0.
The IPv6 extension header associated with each bit is provided in The IPv6 extension header associated with each bit is provided in
[NEW_IPFIX_IPv6EH_SUBREGISTRY]. Bit 0 corresponds to the least- [NEW_IPFIX_IPv6EH_SUBREGISTRY]. Bit 0 corresponds to the least-
significant bit in the ipv6ExtensionHeadersFull IE while bit 255 significant bit in the ipv6ExtensionHeadersFull IE while bit 255
corresponds to the most-significant bit of the IE. In doing so, corresponds to the most-significant bit of the IE. In doing so,
few octets will be needed to encode common IPv6 extension headers few octets will be needed to encode common IPv6 extension headers
when observed in a Flow. when observed in a Flow.
The "No Next Header" (59) value (Section 4.7 of [RFC8200]) is used The "No Next Header" (bit 2) value (Section 4.7 of [RFC8200]) is
if there is no upper-layer header in an IPv6 packet. Even if the used if there is no upper-layer header in an IPv6 packet. Even if
value is not considered as an extension header as such, the the value is not considered as an extension header as such, the
corresponding bit is set in the ipv6ExtensionHeadersFull IE corresponding bit is set in the ipv6ExtensionHeadersFull IE
whenever that value is encountered in the Flow. whenever that value is encountered in the Flow.
Extension headers observed in a Flow with varying extension header Extension headers observed in a Flow with varying extension header
chain MUST NOT be grouped in the ipv6ExtensionHeadersFull chain MUST NOT be grouped in the ipv6ExtensionHeadersFull IE if
Information Element if the ipv6ExtensionHeaderChainLengthList the ipv6ExtensionHeaderChainLengthList IE is also present.
Information Element is also present.
If the ipv6ExtensionHeaderChainLengthList Information Element is If the ipv6ExtensionHeaderChainLengthList IE is not present, then
not present, then extension headers observed in a Flow with extension headers observed in a Flow with varying extension header
varying extension header chain MAY be grouped in one single chain MAY be grouped in one single ipv6ExtensionHeadersFull IE or
ipv6ExtensionHeadersFull Information Element or be exported in be exported in separate ipv6ExtensionHeadersFull IEs, one for each
separate ipv6ExtensionHeadersFull IEs, one for each extension extension header chain.
header chain.
The ipv6ExtensionHeadersFull Information Element MUST NOT be The ipv6ExtensionHeadersFull IE MUST NOT be exported if
exported if ipv6ExtensionHeaderTypeCountList Information Element ipv6ExtensionHeaderTypeCountList IE is also present because of the
is also present because of the overlapping scopes between these overlapping scopes between these two IEs.
two IEs.
The value of ipv6ExtensionHeadersFull IE may be encoded in fewer The value of ipv6ExtensionHeadersFull IE may be encoded in fewer
octets per the guidelines in Section 6.2 of [RFC7011]. octets per the guidelines in Section 6.2 of [RFC7011].
Abstract Data Type: unsigned256 Abstract Data Type: unsigned256
Data Type Semantics: flags Data Type Semantics: flags
Additional Information: See the ipv6ExtensionHeaders Bits registry Additional Information: See the ipv6ExtensionHeaders Bits registry
at [NEW_IPFIX_IPv6EH_SUBREGISTRY]. at [NEW_IPFIX_IPv6EH_SUBREGISTRY].
skipping to change at page 7, line 44 skipping to change at page 7, line 42
"ipv6ExtensionHeaders Bits" registry (Section 8.4). "ipv6ExtensionHeaders Bits" registry (Section 8.4).
3.4. ipv6ExtensionHeaderTypeCountList Information Element 3.4. ipv6ExtensionHeaderTypeCountList Information Element
Name: ipv6ExtensionHeaderTypeCountList Name: ipv6ExtensionHeaderTypeCountList
ElementID: TBD4 ElementID: TBD4
Description: As per Section 4.1 of [RFC8200], IPv6 nodes must accept Description: As per Section 4.1 of [RFC8200], IPv6 nodes must accept
and attempt to process extension headers occurring any number of and attempt to process extension headers occurring any number of
times in the same packet. This Information Element echoes the times in the same packet. This IE echoes the order of extension
order of extension headers and number of consecutive occurrences headers and number of consecutive occurrences of the same
of the same extension header type in a Flow. extension header type in a Flow.
This Information Element is a subTemplateList of This IE is a subTemplateList of ipv6ExtensionHeaderType and
ipv6ExtensionHeaderType and ipv6ExtensionHeaderCount Information ipv6ExtensionHeaderCount IEs.
Elements.
Each header chain in Flow with varying extension header chain MUST Each header chain in Flow with varying extension header chain MUST
be exported in a separate IE. be exported in a separate IE.
The same extension header type may appear several times in an The same extension header type may appear several times in an
ipv6ExtensionHeaderTypeCountList Information Element. For ipv6ExtensionHeaderTypeCountList IE. For example, if an IPv6
example, if an IPv6 packet of a Flow includes a Hop-by-Hop Options packet of a Flow includes a Hop-by-Hop Options header, a
header, a Destination Options header, a Fragment header, and Destination Options header, a Fragment header, and Destination
Destination Options header, the ipv6ExtensionHeaderTypeCountList Options header, the ipv6ExtensionHeaderTypeCountList IE will
Information Element will report: report:
* the count of Hop-by-Hop Options header, * the count of Hop-by-Hop Options headers,
* the occurrences of the Destination Options header that are * the occurrences of the Destination Options headers that are
observed before the Fragment header, observed before a Fragment header,
* the occurrences of the Fragment header, and * the occurrences of the Fragment headers, and
* the occurrences of the Destination Options header that are * the occurrences of the Destination Options headers that are
observed right after the Fragment header. observed right after a Fragment header.
If an implementation determines that an observed packet of a Flow If an implementation determines that an observed packet of a Flow
includes an extension header (including an extension header that includes an extension header (including an extension header that
it does not support), then the exact observed code of that it does not support), then the exact observed code of that
extension header MUST be echoed in the extension header MUST be echoed in the
ipv6ExtensionHeaderTypeCountList IE. How an implementation ipv6ExtensionHeaderTypeCountList IE. How an implementation
disambiguates between unknown upper-layer protocols vs. extension disambiguates between unknown upper-layer protocols vs. extension
headers is not IPFIX-specific. Refer, for example, to Section 2.2 headers is not IPFIX-specific. Refer, for example, to Section 2.2
of [RFC8883] for a behavior of an intermediate node that of [RFC8883] for a behavior of an intermediate node that
encounters an unknown Next Header type. encounters an unknown Next Header type.
skipping to change at page 9, line 4 skipping to change at page 8, line 49
See [RFC8200] for the general definition of IPv6 extension See [RFC8200] for the general definition of IPv6 extension
headers. headers.
Reference: This-Document Reference: This-Document
3.5. ipv6ExtensionHeadersLimit Information Element 3.5. ipv6ExtensionHeadersLimit Information Element
Name: ipv6ExtensionHeadersLimit Name: ipv6ExtensionHeadersLimit
ElementID: TBD5 ElementID: TBD5
Description: When set to "false", this Information Element indicates
that the exported extension headers information (e.g., Description: When set to "false", this IE indicates that the
exported extension headers information (e.g.,
ipv6ExtensionHeadersFull or ipv6ExtensionHeaderTypeCountList) does ipv6ExtensionHeadersFull or ipv6ExtensionHeaderTypeCountList) does
not match the full enclosed extension headers, but only up to a not match the full enclosed extension headers, but only up to a
limit that is typically set by hardware or software. limit that is typically set by hardware or software.
When set to "true", this Information Element indicates that the When set to "true", this IE indicates that the exported extension
exported extension header information matches the full enclosed header information matches the full enclosed extension headers.
extension headers.
Abstract Data Type: boolean Abstract Data Type: boolean
Data Type Semantics: default Data Type Semantics: default
Additional Information: See Section 4 of [RFC8200] for the general Additional Information: See Section 4 of [RFC8200] for the general
definition of IPv6 extension headers. definition of IPv6 extension headers.
See [RFC8883] for an example of IPv6 packet processing due to See [RFC8883] for an example of IPv6 packet processing due to
limits on extension headers. limits on extension headers.
skipping to change at page 10, line 27 skipping to change at page 10, line 25
packets with extension headers. packets with extension headers.
Reference: This-Document Reference: This-Document
3.7. ipv6ExtensionHeaderChainLengthList Information Element 3.7. ipv6ExtensionHeaderChainLengthList Information Element
Name: ipv6ExtensionHeaderChainLengthList Name: ipv6ExtensionHeaderChainLengthList
ElementID: TBD7 ElementID: TBD7
Description: This Information Element is used to report the chains Description: This IE is used to report the chains and their length
and their length as observed in a Flow with varying extension as observed in a Flow with varying extension header chain.
header chain.
This Information Element is a subTemplateList of This IE is a subTemplateList of ipv6ExtensionHeadersFull and
ipv6ExtensionHeadersFull and ipv6ExtensionHeadersChainLength ipv6ExtensionHeadersChainLength IEs.
Information Elements.
If several extension header chains are observed in a Flow, each If several extension header chains are observed in a Flow, each
header chain MUST be exported in a separate header chain MUST be exported in a separate
ipv6ExtensionHeaderChainLengthList IE. ipv6ExtensionHeaderChainLengthList IE.
Abstract Data Type: subTemplateList Abstract Data Type: subTemplateList
Data Type Semantics: list Data Type Semantics: list
Additional Information: See the IPv6 Extension Header Types registry Additional Information: See the IPv6 Extension Header Types registry
skipping to change at page 12, line 10 skipping to change at page 12, line 4
Additional Information: See the TCP Option Kind Numbers registry at Additional Information: See the TCP Option Kind Numbers registry at
[IANA-TCP]. [IANA-TCP].
See [RFC9293] for the general definition of TCP options. See [RFC9293] for the general definition of TCP options.
Reference: This-Document Reference: This-Document
4.2. tcpSharedOptionExID16 Information Element 4.2. tcpSharedOptionExID16 Information Element
Name: tcpSharedOptionExID16 Name: tcpSharedOptionExID16
ElementID: TBD9 ElementID: TBD9
Description: Reports an observed 2-byte ExID in a shared TCP option Description: Reports an observed 2-byte ExID in a shared TCP option
(Kind=253 or 254) in a Flow. (Kind=253 or 254) in a Flow.
A basicList of tcpSharedOptionExID16 is used to report
tcpSharedOptionExID16List values.
Abstract Data Type: unsigned16 Abstract Data Type: unsigned16
Data Type Semantics: identifier Data Type Semantics: identifier
Additional Information: See the TCP Experimental Option Experiment Additional Information: See the TCP Experimental Option Experiment
Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs]. Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options. See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options. See [RFC6994] for the shared use of experimental TCP Options.
skipping to change at page 12, line 38 skipping to change at page 12, line 34
4.3. tcpSharedOptionExID32 Information Element 4.3. tcpSharedOptionExID32 Information Element
Name: tcpSharedOptionExID32 Name: tcpSharedOptionExID32
ElementID: TBD10 ElementID: TBD10
Description: Reports an observed 4-byte ExID in a shared TCP option Description: Reports an observed 4-byte ExID in a shared TCP option
(Kind=253 or 254) in a Flow. (Kind=253 or 254) in a Flow.
A basicList of tcpSharedOptionExID32 is used to report
tcpSharedOptionExID32List values.
Abstract Data Type: unsigned32 Abstract Data Type: unsigned32
Data Type Semantics: identifier Data Type Semantics: identifier
Additional Information: See the TCP Experimental Option Experiment Additional Information: See the TCP Experimental Option Experiment
Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs]. Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options. See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options. See [RFC6994] for the shared use of experimental TCP Options.
skipping to change at page 13, line 14 skipping to change at page 13, line 14
4.4. tcpSharedOptionExID16List Information Element 4.4. tcpSharedOptionExID16List Information Element
Name: tcpSharedOptionExID16List Name: tcpSharedOptionExID16List
ElementID: TBD11 ElementID: TBD11
Description: Reports observed 2-byte ExIDs in shared TCP options Description: Reports observed 2-byte ExIDs in shared TCP options
(Kind=253 or 254) in a Flow. (Kind=253 or 254) in a Flow.
A basicList of tcpSharedOptionExID16 Information Elements in which A basicList of tcpSharedOptionExID16 IEs in which each
each tcpSharedOptionExID16 Information Element carries an observed tcpSharedOptionExID16 IE carries an observed 2-byte ExID in a
2-byte ExID in a shared option. shared option.
Abstract Data Type: basicList Abstract Data Type: basicList
Data Type Semantics: list Data Type Semantics: list
Additional Information: See the TCP Experimental Option Experiment Additional Information: See the TCP Experimental Option Experiment
Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs]. Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options. See [RFC9293] for the general definition of TCP options.
skipping to change at page 13, line 40 skipping to change at page 13, line 40
4.5. tcpSharedOptionExID32List Information Element 4.5. tcpSharedOptionExID32List Information Element
Name: tcpSharedOptionExID32List Name: tcpSharedOptionExID32List
ElementID: TBD12 ElementID: TBD12
Description: Reports observed 4-byte ExIDs in shared TCP options Description: Reports observed 4-byte ExIDs in shared TCP options
(Kind=253 or 254) in a Flow. (Kind=253 or 254) in a Flow.
A basicList of tcpSharedOptionExID32 Information Elements in which A basicList of tcpSharedOptionExID32 IEs in which each
each tcpSharedOptionExID32 Information Element carries an observed tcpSharedOptionExID32 IE carries an observed 4-byte ExID in a
4-byte ExID in a shared option. shared option.
Abstract Data Type: basicList Abstract Data Type: basicList
Data Type Semantics: list Data Type Semantics: list
Additional Information: See the TCP Experimental Option Experiment Additional Information: See the TCP Experimental Option Experiment
Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs]. Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options. See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options. See [RFC6994] for the shared use of experimental TCP Options.
Reference: This-Document Reference: This-Document
5. Operational Considerations 5. Implementation and Operational Considerations
Implementations of tcpSharedOptionExID16, tcpSharedOptionExID32, Implementations of tcpSharedOptionExID16, tcpSharedOptionExID32,
tcpSharedOptionExID16List, and tcpSharedOptionExID32List IEs are tcpSharedOptionExID16List, and tcpSharedOptionExID32List IEs are
assumed to be provided with a list of valid ExIDs [IANA-TCP-EXIDs]. assumed to be provided with a list of valid ExIDs [IANA-TCP-EXIDs].
How that list is maintained is implementation-specific. Absent that How that list is maintained is implementation-specific. Absent that
list, an implementation can't autonomously determine whether an ExID list, an implementation can't autonomously determine whether an ExID
is present and, if so, whether it is 2- or 4-byte length. is present and, if so, whether it is 2- or 4-byte length.
If a TCP Flow contains packets with a mix of 2-byte and 4-byte ExIDs, If a TCP Flow contains packets with a mix of 2-byte and 4-byte ExIDs,
the same Template Record is used with both tcpSharedOptionExID16 and the same Template Record is used with both tcpSharedOptionExID16 and
skipping to change at page 15, line 29 skipping to change at page 15, line 29
MSB LSB MSB LSB
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|0|0|1|0|0|0|1|1| |0|0|1|0|0|0|1|1|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 3: A Second Example of ipv6ExtensionHeadersFull IE with Figure 3: A Second Example of ipv6ExtensionHeadersFull IE with
Reduced-size Encoding Reduced-size Encoding
Let us now consider an IPv6 Flow in which the following EH chain is
observed: Routing (5), Mobility (7), and Authentication (9) header.
Figure 4 shows the ipv6ExtensionHeadersFull IE (0x02A0) to reprot
this individual chain.
MSB LSB
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|1|0|1|0|1|0|0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: An Example of ipv6ExtensionHeadersFull IE Reported for
an Extension Header Chain
6.2. TCP Options 6.2. TCP Options
6.2.1. Reduced-size Encoding 6.2.1. Reduced-size Encoding
Given TCP Kind allocation practices and the option mapping defined in Given TCP Kind allocation practices and the option mapping defined in
Section 4.1, fewer octets are likely to be used for Flows with common Section 4.1, fewer octets are likely to be used for Flows with common
TCP options. TCP options.
Figure 4 shows an example of Kind/bit mappings in a tcpOptionsFull IE Figure 5 shows an example of Kind/bit mappings in a tcpOptionsFull IE
for a TCP Flow in which End of Option List (0), Maximum Segment Size for a TCP Flow in which End of Option List (0), Maximum Segment Size
(2), and Window Scale (3) options are observed. (2), and Window Scale (3) options are observed.
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|1|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|1|1|0|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
Figure 4: An Example of TCP Options / Bit Mappings in a Figure 5: An Example of TCP Options / Bit Mappings in a
tcpOptionsFull IE tcpOptionsFull IE
One octet is sufficient to report these observed options. One octet is sufficient to report these observed options.
Concretely, the tcpOptionsFull IE will be set to 0x0D (Figure 5). Concretely, the tcpOptionsFull IE will be set to 0x0D (Figure 6).
MSB LSB MSB LSB
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|0|0|0|0|1|1|0|1| |0|0|0|0|1|1|0|1|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 5: An Example of tcpOptionsFull IE with Reduced-size Encdoing Figure 6: An Example of tcpOptionsFull IE with Reduced-size Encdoing
6.2.2. Shared Options 6.2.2. Shared Options
Let us consider a TCP Flow in which shared options with ExIDs 0x0348 Let us consider a TCP Flow in which shared options with ExIDs 0x0348
(HOST_ID) [RFC7974], 0x454E (TCP-ENO) [RFC8547], and 0xE2D4C3D9 (HOST_ID) [RFC7974], 0x454E (TCP-ENO) [RFC8547], and 0xE2D4C3D9
(Shared Memory communications over RMDA protocol) [RFC7609] are (Shared Memory communications over RMDA protocol) [RFC7609] are
observed. Figure 6 shows an excerpt of the Data Set encoding with a observed. Figure 7 shows an excerpt of the Data Set encoding with a
focus on the tcpSharedOptionExID16 and tcpSharedOptionExID32 IEs. focus on the tcpSharedOptionExID16 and tcpSharedOptionExID32 IEs.
The meaning of the fields is defined in [RFC6313]. The meaning of the fields is 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 16, line 41 skipping to change at page 17, line 24
| 0x0348 | 0x454E | | 0x0348 | 0x454E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 255 | List Length = 9 |semantic=allof | | 255 | List Length = 9 |semantic=allof |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|tcpSharedOptionExID32 = TBD10 | Field Length = 4 | |tcpSharedOptionExID32 = TBD10 | Field Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0xE2D4C3D9 | | 0xE2D4C3D9 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: ... : : ... :
Figure 6: Example of TCP Shared IEs Figure 7: Example of TCP Shared IEs
7. Security Considerations 7. Security Considerations
IPFIX security considerations are discussed in Section 11 of IPFIX security considerations are discussed in Section 11 of
[RFC7011]. [RFC7011].
ipv6ExtensionHeadersChainLength and ipv6ExtensionHeadersLimit IEs can ipv6ExtensionHeadersChainLength and ipv6ExtensionHeadersLimit IEs can
be exploited by an unauthorized observer as a means to deduce the be exploited by an unauthorized observer as a means to deduce the
processing capabilities of nodes. Section 8 of [RFC7012] discusses processing capabilities of nodes. Section 8 of [RFC7012] discusses
the required measures to guarantee the integrity and confidentiality the required measures to guarantee the integrity and confidentiality
skipping to change at page 21, line 16 skipping to change at page 22, line 16
| Bit | Label | Protocol | Description | Reference | | Bit | Label | Protocol | Description | Reference |
| | | Number | | | | | | Number | | |
+=====+=======+==========+=========================+===============+ +=====+=======+==========+=========================+===============+
| 0 | DST | 60 | Destination Options for | This-Document | | 0 | DST | 60 | Destination Options for | This-Document |
| | | | IPv6 | | | | | | IPv6 | |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 1 | HOP | 0 | IPv6 Hop-by-Hop Options | This-Document | | 1 | HOP | 0 | IPv6 Hop-by-Hop Options | This-Document |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 2 | NoNxt | 59 | No Next Header for IPv6 | This-Document | | 2 | NoNxt | 59 | No Next Header for IPv6 | This-Document |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 3 | UNK | | Unknown extension | This-Document | | 3 | UNK | | Unknown extension or | This-Document |
| | | | header | | | | | | transport header | |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 4 | FRA0 | 44 | Fragment header - first | This-Document | | 4 | FRA0 | 44 | Fragment header - first | This-Document |
| | | | fragment | | | | | | fragment | |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 5 | RH | 43 | Routing header | This-Document | | 5 | RH | 43 | Routing header | This-Document |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 6 | FRA1 | 44 | Fragmentation header - | This-Document | | 6 | FRA1 | 44 | Fragmentation header - | This-Document |
| | | | not first fragment | | | | | | not first fragment | |
+-----+-------+----------+-------------------------+---------------+ +-----+-------+----------+-------------------------+---------------+
| 7 | MOB | 135 | Mobility Header | This-Document | | 7 | MOB | 135 | Mobility Header | This-Document |
skipping to change at page 24, line 4 skipping to change at page 25, line 4
[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/rfc/rfc9293>.
9.2. Informative References 9.2. Informative References
[I-D.ietf-6man-eh-limits] [I-D.ietf-6man-eh-limits]
Herbert, T., "Limits on Sending and Processing IPv6 Herbert, T., "Limits on Sending and Processing IPv6
Extension Headers", Work in Progress, Internet-Draft, Extension Headers", Work in Progress, Internet-Draft,
draft-ietf-6man-eh-limits-12, 18 December 2023, draft-ietf-6man-eh-limits-13, 12 June 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh- <https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh-
limits-12>. limits-13>.
[RFC7609] Fox, M., Kassimis, C., and J. Stevens, "IBM's Shared [RFC7609] Fox, M., Kassimis, C., and J. Stevens, "IBM's Shared
Memory Communications over RDMA (SMC-R) Protocol", Memory Communications over RDMA (SMC-R) Protocol",
RFC 7609, DOI 10.17487/RFC7609, August 2015, RFC 7609, DOI 10.17487/RFC7609, August 2015,
<https://www.rfc-editor.org/rfc/rfc7609>. <https://www.rfc-editor.org/rfc/rfc7609>.
[RFC7974] Williams, B., Boucadair, M., and D. Wing, "An Experimental [RFC7974] Williams, B., Boucadair, M., and D. Wing, "An Experimental
TCP Option for Host Identification", RFC 7974, TCP Option for Host Identification", RFC 7974,
DOI 10.17487/RFC7974, October 2016, DOI 10.17487/RFC7974, October 2016,
<https://www.rfc-editor.org/rfc/rfc7974>. <https://www.rfc-editor.org/rfc/rfc7974>.
skipping to change at page 24, line 34 skipping to change at page 25, line 34
Processing Limits", RFC 8883, DOI 10.17487/RFC8883, Processing Limits", RFC 8883, DOI 10.17487/RFC8883,
September 2020, <https://www.rfc-editor.org/rfc/rfc8883>. September 2020, <https://www.rfc-editor.org/rfc/rfc8883>.
[RFC9098] Gont, F., Hilliard, N., Doering, G., Kumari, W., Huston, [RFC9098] Gont, F., Hilliard, N., Doering, G., Kumari, W., Huston,
G., and W. Liu, "Operational Implications of IPv6 Packets G., and W. Liu, "Operational Implications of IPv6 Packets
with Extension Headers", RFC 9098, DOI 10.17487/RFC9098, with Extension Headers", RFC 9098, DOI 10.17487/RFC9098,
September 2021, <https://www.rfc-editor.org/rfc/rfc9098>. September 2021, <https://www.rfc-editor.org/rfc/rfc9098>.
Acknowledgments Acknowledgments
Thanks to Paul Aitken, Eric Vyncke, and Joe Touch for the reviews and Thanks to Paul Aitken, Éric Vyncke, and Joe Touch for the reviews and
comments. Special thanks to Andrew Feren for sharing data about comments. Special thanks to Andrew Feren for sharing data about
scans of IPFIX data he collected. scans of IPFIX data he collected.
Thanks to Wesley Eddy for the tsvart review, Yingzhen Qu for the Thanks to Wesley Eddy for the tsvart review, Yingzhen Qu for the
opsdir review, Dirk Von Hugo for intdir review, Joel Halpern for the opsdir review, Dirk Von Hugo for intdir review, Joel Halpern for the
genart review, and Tero Kivinen for the secdir review. genart review, and Tero Kivinen for the secdir 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 for the IESG review.
Authors' Addresses Authors' Addresses
Mohamed Boucadair Mohamed Boucadair
Orange Orange
Email: mohamed.boucadair@orange.com Email: mohamed.boucadair@orange.com
Benoit Claise Benoit Claise
Huawei Huawei
Email: benoit.claise@huawei.com Email: benoit.claise@huawei.com
 End of changes. 45 change blocks. 
88 lines changed or deleted 108 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/