draft-ietf-opsawg-ipfix-tcpo-v6eh-05.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: 25 April 2024 Huawei Expires: 6 January 2025 Huawei
23 October 2023 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-05 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 some 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
This note is to be removed before publishing as an RFC. This note is to be removed before publishing as an RFC.
Discussion of this document takes place on the Operations and Discussion of this document takes place on the Operations and
Management Area Working Group Working Group mailing list Management Area Working Group Working Group mailing list
(opsawg@ietf.org), which is archived at (opsawg@ietf.org), which is archived at
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 25 April 2024. This Internet-Draft will expire on 6 January 2025.
Copyright Notice Copyright Notice
Copyright (c) 2023 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
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Issues with ipv6ExtensionHeaders Information Element . . 3 1.1. Issues with ipv6ExtensionHeaders Information Element . . 3
1.2. Issues with tcpOptions Information Element . . . . . . . 3 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 . . . . . . . 4 3. Information Elements for IPv6 Extension Headers . . . . . . . 5
3.1. ipv6ExtensionHeadersFull Information Element . . . . . . 4 3.1. ipv6ExtensionHeaderType Information Element . . . . . . . 5
3.2. ipv6ExtensionHeaderCount Information Element . . . . . . 6 3.2. ipv6ExtensionHeaderCount Information Element . . . . . . 5
3.3. ipv6ExtensionHeadersLimit Information Element . . . . . . 6 3.3. ipv6ExtensionHeadersFull Information Element . . . . . . 6
3.4. ipv6ExtensionHeadersChainLength Information Element . . . 7 3.4. ipv6ExtensionHeaderTypeCountList Information Element . . 7
4. Information Elements for TCP Options . . . . . . . . . . . . 8 3.5. ipv6ExtensionHeadersLimit Information Element . . . . . . 8
4.1. tcpOptionsFull Information Element . . . . . . . . . . . 8 3.6. ipv6ExtensionHeadersChainLength Information Element . . . 9
4.2. tcpSharedOptionExID16 Information Element . . . . . . . . 9 3.7. ipv6ExtensionHeaderChainLengthList Information Element . 10
4.3. tcpSharedOptionExID32 Information Element . . . . . . . . 9 4. Information Elements for TCP Options . . . . . . . . . . . . 10
5. Operational Considerations . . . . . . . . . . . . . . . . . 10 4.1. tcpOptionsFull Information Element . . . . . . . . . . . 10
5.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 10 4.2. tcpSharedOptionExID16 Information Element . . . . . . . . 11
5.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 10 4.3. tcpSharedOptionExID32 Information Element . . . . . . . . 12
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.4. tcpSharedOptionExID16List Information Element . . . . . . 13
6.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 10 4.5. tcpSharedOptionExID32List Information Element . . . . . . 13
6.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 11 5. Implementation and Operational Considerations . . . . . . . . 14
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 6.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 15
9.1. Normative References . . . . . . . . . . . . . . . . . . 13 6.2.1. Reduced-size Encoding . . . . . . . . . . . . . . . . 15
9.2. Informative References . . . . . . . . . . . . . . . . . 14 6.2.2. Shared Options . . . . . . . . . . . . . . . . . . . 16
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information
Elements . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2. IPFIX Information Elements . . . . . . . . . . . . . . . 18
8.3. IPFIX Information Element Data Type . . . . . . . . . . . 19
8.3.1. unsigned256 . . . . . . . . . . . . . . . . . . . . . 20
8.4. IPFIX Subregistry for IPv6 Extension Headers . . . . . . 20
8.4.1. Initial Values . . . . . . . . . . . . . . . . . . . 21
8.4.2. Guidelines for the Designated Experts . . . . . . . . 23
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.1. Normative References . . . . . . . . . . . . . . . . . . 23
9.2. Informative References . . . . . . . . . . . . . . . . . 24
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 25
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)
Information Elements (IEs) to solve a set of issues encountered with [RFC7011] Information Elements (IEs) to solve a set of issues
the specifications of ipv6ExtensionHeaders (to export IPv6 extension encountered with the specifications of ipv6ExtensionHeaders (to
headers) and tcpOptions (to export TCP options) IEs. More details export IPv6 extension headers) and tcpOptions (to export TCP options)
about these issues are provided in the following sub-sections. IEs [IANA-IPFIX]. More details about these issues are provided in
the following sub-sections.
1.1. Issues with ipv6ExtensionHeaders Information Element 1.1. Issues with ipv6ExtensionHeaders Information Element
The specification of ipv6ExtensionHeaders IPFIX IE does not: The specification of the ipv6ExtensionHeaders IPFIX IE (64) does not:
* Cover the full extension headers range (Section 4 of [RFC8200]). * Cover the full extension headers' range defined in the IPv6
specification (Section 4 of [RFC8200]).
* Specify the procedure to follow when all bits are exhausted. * Specify the procedure to follow when all bits are exhausted.
* Specify a means to export the order and the number of occurences * Specify a means to export the order and the number of occurrences
of a given extension header. of a given extension header.
* Specify how to automatically update the IANA IPFIX registry * Specify how to automatically update the IANA IPFIX registry
([IANA-IPFIX]) when a new value is assigned in [IANA-EH]. Only a ([IANA-IPFIX]) when a new value is assigned in the IPv6 Extension
frozen set of extension headers can be exported using the Header Types registry [IANA-EH]. Only a frozen set of extension
ipv6ExtensionHeaders IE. headers can be exported using the ipv6ExtensionHeaders IE. For
example, the ipv6ExtensionHeaders IE can't report some IPv6 EHs,
specifically EHs for Host Identity Protocol (139), Shim6 Protocol
(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]). Section 1.1 of [RFC8883]). Note that some implementations may not
be able to export all observed extension headers in a Flow because
of a hardware or software limit (see, e.g.,
[I-D.ietf-6man-eh-limits]). The specification of the
ipv6ExtensionHeaders IE does not discuss whether it covers all
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 no 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
extension headers length.
Section 3 addresses these issues. Section 3 addresses these issues.
This specification deprecates the ipv6ExtensionHeaders IPFIX IE in
favor of the new IEs defined in this document.
1.2. Issues with tcpOptions Information Element 1.2. Issues with tcpOptions Information Element
The specification of tcpOptions IPFIX IE does not: The specification of the tcpOptions IPFIX IE (209) does not:
* Describe how any observed TCP option in a Flow can be exported * Describe how some observed TCP options in a Flow can be exported
using IPFIX. Only TCP options having a kind =< 63 can be exported using IPFIX. Only TCP options having a Kind <= 63 can be exported
in a tcpOptions IPFIX IE. in a tcpOptions IE.
* Allow reporting the observed Experimental Identifiers (ExIDs) that * Allow reporting the observed Experiment Identifiers (ExIDs) that
are carried in shared TCP options (kind=253 or 254) [RFC6994]. are carried in shared Experimental TCP options (Kind=253 or 254)
[RFC6994].
* Optimize the encoding. * Optimize the encoding.
Section 4 addresses these issues. Section 4 addresses these issues.
This specification deprecates the tcpOptions IE in favor of the new
IEs defined in this document.
2. Conventions and Definitions 2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
This document uses the IPFIX-specific terminology (Information This document uses the IPFIX-specific terminology (Information
Element, Template Record, Flow, etc.) defined in Section 2 of Element, Template Record, Flow, etc.) defined in Section 2 of
[RFC7011]. As in [RFC7011], these IPFIX-specific terms have the [RFC7011]. As in the base IPFIX specification [RFC7011], these
first letter of a word capitalized. IPFIX-specific terms have the first letter of a word capitalized.
Also, the document uses the terms defined in [RFC8200] and [RFC9293]. Also, the document uses the terms defined in IPv6 [RFC8200] and TCP
[RFC9293] specifications.
In addition, the document makes use of the following term: In addition, the document makes use of the following term:
Extension header chain: Refers to the chain of extension headers Extension header chain: Refers to the chain of extension headers
that are present in an IPv6 packet. that are present in an IPv6 packet.
This term should not be confused with the IPv6 header chain, which This term should not be confused with the IPv6 header chain, which
includes the IPv6 header, zero or more IPv6 extension headers, and includes the IPv6 header, zero or more IPv6 extension headers, and
zero or a single Upper-Layer Header. zero or a single Upper-Layer Header.
Flow with varying extension header chain: Refers to a Flow where
distinct extension header chains are observed. Concretely,
different packets in such a Flow will have a different sequence of
extension header type codes.
3. Information Elements for IPv6 Extension Headers 3. Information Elements for IPv6 Extension Headers
The definition of the ipv6ExtensionHeaders IE is updated in 3.1. ipv6ExtensionHeaderType Information Element
[I-D.ietf-opsawg-ipfix-fixes] to address some of the issues listed in
Section 1.1. Because some of these limitations can't be addressed by
simple updates to ipv6ExtensionHeaders, this section specifies a set
of new IEs to address all the ipv6ExtensionHeaders IE limitations.
3.1. ipv6ExtensionHeadersFull Information Element Name: ipv6ExtensionHeaderType
ElementID: TBD1
Description: Type of an IPv6 extension header observed in at least
one packet of this Flow.
Abstract Data Type: unsigned8
Data Type Semantics: identifier
Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH].
See Section 4 of [RFC8200] for the general definition of IPv6
extension headers.
Reference: This-Document
3.2. ipv6ExtensionHeaderCount Information Element
Name: ipv6ExtensionHeaderCount
ElementID: TBD2
Description: The number of consecutive occurrences of the same
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
ipv6ExtensionHeaderType IE.
Abstract Data Type: unsigned8
Data Type Semantics: totalCounter
Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH].
See Section 4 of [RFC8200] for the general definition of IPv6
extension headers.
Reference: This-Document
3.3. ipv6ExtensionHeadersFull Information Element
Name: ipv6ExtensionHeadersFull Name: ipv6ExtensionHeadersFull
ElementID: TBD1 ElementID: TBD3
Description: IPv6 extension headers observed in packets of this Description: IPv6 extension headers observed in packets of this
Flow. The information is encoded in a set of bit fields. For Flow. The information is encoded in a set of bit fields. For
each IPv6 extension header, there is a bit in this set. The bit each IPv6 extension header, there is a bit in this set. The bit
is set to 1 if any observed packet of this Flow contains the is set to 1 if any observed packet of this Flow contains the
corresponding IPv6 extension header. Otherwise, if no observed corresponding IPv6 extension header. Otherwise, if no observed
packet of this Flow contained the respective IPv6 extension packet of this Flow contains the respective IPv6 extension header,
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 is used if there is no upper-layer The "No Next Header" (bit 2) value (Section 4.7 of [RFC8200]) is
header in an IPv6 packet. Even if the value is not considered as used if there is no upper-layer header in an IPv6 packet. Even if
an extension header as such, the corresponding bit is set in the the value is not considered as an extension header as such, the
ipv6ExtensionHeadersFull IE whenever that value is encountered in corresponding bit is set in the ipv6ExtensionHeadersFull IE
the Flow. whenever that value is encountered in the Flow.
Several extension header chains may be observed in a Flow. These Extension headers observed in a Flow with varying extension header
extension headers may be aggregated in one single chain MUST NOT be grouped in the ipv6ExtensionHeadersFull IE if
ipv6ExtensionHeadersFull Information Element or be exported in the ipv6ExtensionHeaderChainLengthList IE is also present.
separate ipv6ExtensionHeadersFull IEs, one for each extension
header chain.
This Information Element SHOULD NOT be exported if If the ipv6ExtensionHeaderChainLengthList IE is not present, then
ipv6ExtensionHeaderCount Information Element is also present. extension headers observed in a Flow with varying extension header
chain MAY be grouped in one single ipv6ExtensionHeadersFull IE or
be exported in separate ipv6ExtensionHeadersFull IEs, one for each
extension header chain.
Abstract Data Type: unsigned The ipv6ExtensionHeadersFull IE MUST NOT be exported if
ipv6ExtensionHeaderTypeCountList IE is also present because of the
overlapping scopes between these two IEs.
The value of ipv6ExtensionHeadersFull IE may be encoded in fewer
octets per the guidelines in Section 6.2 of [RFC7011].
Abstract Data Type: unsigned256
Data Type Semantics: flags Data Type Semantics: flags
Additional Information: See the assigned bits to each IPv6 extension Additional Information: See the ipv6ExtensionHeaders Bits registry
header type in [NEW_IPFIX_IPv6EH_SUBREGISTRY]. at [NEW_IPFIX_IPv6EH_SUBREGISTRY].
See [IANA-EH] for assigned extension header types. See the IPv6 Extension Header Types registry 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.
Reference: This-Document Reference: This-Document
Note to the RFC Editor: Please replace Note to the RFC Editor: Please replace
[NEW_IPFIX_IPv6EH_SUBREGISTRY] with the link to the [NEW_IPFIX_IPv6EH_SUBREGISTRY] with the link to the
"ipv6ExtensionHeaders Bits" registry created by "ipv6ExtensionHeaders Bits" registry (Section 8.4).
[I-D.ietf-opsawg-ipfix-fixes].
3.2. ipv6ExtensionHeaderCount Information Element 3.4. ipv6ExtensionHeaderTypeCountList Information Element
Name: ipv6ExtensionHeaderCount Name: ipv6ExtensionHeaderTypeCountList
ElementID: TBD2 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 in occurring any number and attempt to process extension headers occurring any number of
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.
If several extension header chains are observed in a Flow, each This IE is a subTemplateList of ipv6ExtensionHeaderType and
header chain MUST be exported in a separate ipv6ExtensionHeaderCount IEs.
ipv6ExtensionHeaderCount IE.
Each header chain in Flow with varying extension header chain MUST
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
ipv6ExtensionHeaderCount Information Element. For example, if an ipv6ExtensionHeaderTypeCountList IE. For example, if an IPv6
IPv6 packet of a Flow includes a Hop-by-Hop Options header, a packet of a Flow includes a Hop-by-Hop Options header, a
Destination Options header, a Fragment header, and Destination Destination Options header, a Fragment header, and Destination
Options header, the ipv6ExtensionHeaderCount Information Element Options header, the ipv6ExtensionHeaderTypeCountList IE will
will report two counts of the Destination Options header: the report:
occurrences that are observed before the Fragment header and the
occurrences right after the Fragment header.
MSB LSB * the count of Hop-by-Hop Options headers,
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| EH Type#1 | Count |...| EH Type#n | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Abstract Data Type: unsigned64 * the occurrences of the Destination Options headers that are
observed before a Fragment header,
Additional Information: See the assigned IPv6 extension header types * the occurrences of the Fragment headers, and
in [IANA-EH].
* the occurrences of the Destination Options headers that are
observed right after a Fragment header.
If an implementation determines that an observed packet of a Flow
includes an extension header (including an extension header that
it does not support), then the exact observed code of that
extension header MUST be echoed in the
ipv6ExtensionHeaderTypeCountList IE. How an implementation
disambiguates between unknown upper-layer protocols vs. extension
headers is not IPFIX-specific. Refer, for example, to Section 2.2
of [RFC8883] for a behavior of an intermediate node that
encounters an unknown Next Header type.
Abstract Data Type: subTemplateList
Data Type Semantics: list
Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH].
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.3. ipv6ExtensionHeadersLimit Information Element 3.5. ipv6ExtensionHeadersLimit Information Element
Name: ipv6ExtensionHeadersLimit Name: ipv6ExtensionHeadersLimit
ElementID: TBD3 ElementID: TBD5
Description: When set to "false", this Information Element indicates Description: When set to "false", this IE indicates that the
that the exported extension headers information (e.g., exported extension headers information (e.g.,
ipv6ExtensionHeadersFull or ipv6ExtensionHeaderCount) does not ipv6ExtensionHeadersFull or ipv6ExtensionHeaderTypeCountList) does
match the full enclosed extension headers, but only up to a limit not match the full enclosed extension headers, but only up to a
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.
Reference: This-Document Reference: This-Document
3.4. ipv6ExtensionHeadersChainLength Information Element 3.6. ipv6ExtensionHeadersChainLength Information Element
Name: ipv6ExtensionHeadersChainLength Name: ipv6ExtensionHeadersChainLength
ElementID: TBD4 ElementID: TBD6
Description: In theory, there are no limits on the number of IPv6 Description: In theory, there are no limits on the number of IPv6
extension headers that may be present in a packet other than the extension headers that may be present in a packet other than the
path MTU. However, it was regularly reported that IPv6 packets path MTU. However, it was regularly reported that IPv6 packets
with extension headers are often dropped in the Internet. with extension headers are often dropped in the Internet.
As discussed in Section 1.2 of [RFC8883], some hardware devices As discussed in Section 1.2 of [RFC8883], some hardware devices
implement a parsing buffer of a fixed size to process packets, implement a parsing buffer of a fixed size to process packets,
including all the headers. When the aggregate length of headers including all the headers. When the aggregate length of headers
of an IPv6 packet exceeds that size, the packet will be discarded of an IPv6 packet exceeds that size, the packet will be discarded
or deferred to a slow path. or deferred to a slow path.
The ipv6ExtensionHeadersChainLength IE is used to report, in The ipv6ExtensionHeadersChainLength IE is used to report, in
octets, the length of an extension header chain observed in a octets, the length of an extension header chain observed in a
Flow. The length is the sum of the length of all extension Flow. The length is the sum of the length of all extension
headers of the chain. Exporting such information may help headers of the chain. Exporting such information might help
identifying root causes of performance degradation, including identifying root causes of performance degradation, including
packet drops. packet drops.
If several extension header chains are observed in a Flow, each Each header chain length of a Flow with varying extension header
header chain length MUST be exported in a separate chain MUST be exported in a separate
ipv6ExtensionHeadersChainLength IE. ipv6ExtensionHeadersChainLength IE.
Abstract Data Type: unsigned Abstract Data Type: unsigned32
Data Type Semantics: identifier Data Type Semantics: identifier
Units: octets Units: octets
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 [RFC9098] for an overview of operational implications of IPv6 See [RFC9098] for an overview of operational implications of IPv6
packets with extension headerss. packets with extension headers.
Reference: This-Document Reference: This-Document
4. Information Elements for TCP Options 3.7. ipv6ExtensionHeaderChainLengthList Information Element
The definition of the tcpOptions IE is updated in Name: ipv6ExtensionHeaderChainLengthList
[I-D.ietf-opsawg-ipfix-fixes] to address some of the issues listed in
Section 1.2. Because some of these limitations can't be addressed by ElementID: TBD7
simple updates to tcpOptions, this section specifies a set of new IEs
to address all the tcpOptions IE limitations. Description: This IE is used to report the chains and their length
as observed in a Flow with varying extension header chain.
This IE is a subTemplateList of ipv6ExtensionHeadersFull and
ipv6ExtensionHeadersChainLength IEs.
If several extension header chains are observed in a Flow, each
header chain MUST be exported in a separate
ipv6ExtensionHeaderChainLengthList IE.
Abstract Data Type: subTemplateList
Data Type Semantics: list
Additional Information: See the IPv6 Extension Header Types registry
at [IANA-EH].
See [RFC8200] for the general definition of IPv6 extension
headers.
Reference: This-Document
4. Information Elements for TCP Options
4.1. tcpOptionsFull Information Element 4.1. tcpOptionsFull Information Element
This section specifies a new IE to cover the full TCP options range. This section specifies a new IE to cover the full TCP options range.
Name: tcpOptionsFull Name: tcpOptionsFull
ElementID: TBD5 ElementID: TBD8
Description: TCP options in packets of this Flow. The information Description: TCP options in packets of this Flow. The information
is encoded in a set of bit fields. For each TCP option, there is is encoded in a set of bit fields. For each TCP option, there is
a bit in this set. The bit is set to 1 if any observed packet of a bit in this set. The bit is set to 1 if any observed packet of
this Flow contains the corresponding TCP option. Otherwise, if no this Flow contains the corresponding TCP option. Otherwise, if no
observed packet of this Flow contained the respective TCP option, observed packet of this Flow contains the respective TCP option,
the value of the corresponding bit is 0. the value of the corresponding bit is 0.
Options are mapped to bits according to their option numbers. TCP Options are mapped to bits according to their option numbers. TCP
option kind 0 corresponds to the least-significant bit in the option Kind 0 corresponds to the least-significant bit in the
tcpOptionsFull IE while kind 255 corresponds to the most- tcpOptionsFull IE while Kind 255 corresponds to the most-
significant bit of the IE. This approach allows an observer to significant bit of the IE. This approach allows an observer to
export any observed TCP option even if it does support that option export any observed TCP option even if it does support that option
and without requiring updating a mapping table. and without requiring updating a mapping table.
Abstract Data Type: unsigned The value of tcpOptionsFull IE may be encoded in fewer octets per
the guidelines in Section 6.2 of [RFC7011].
The presence of tcpSharedOptionExID16List or
tcpSharedOptionExID32List IEs is an indication that a shared TCP
option (Kind=253 or 254) is observed in a Flow. The presence of
tcpSharedOptionExID16List or tcpSharedOptionExID32List IEs takes
precedence over setting the corresponding bits in the
tcpOptionsFull IE for the same Flow. In order to optimize the use
of the reduced-size encoding in the presence of
tcpSharedOptionExID16List or tcpSharedOptionExID32List IEs, the
Exporter MUST NOT set to 1 the shared TCP options (Kind=253 or
254) flags of the tcpOptionsFull IE that is reported for the same
Flow.
Abstract Data Type: unsigned256
Data Type Semantics: flags Data Type Semantics: flags
Additional Information: See the assigned TCP option kinds 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: TBD6 Description: Reports an observed 2-byte ExID in a shared TCP option
(Kind=253 or 254) in a Flow.
Description: Observed Experiments IDs (ExIDs) in a shared TCP option A basicList of tcpSharedOptionExID16 is used to report
(Kind=253 or 254) in a Flow. The information is encoded in a set tcpSharedOptionExID16List values.
of 16-bit fields. Each 16-bit field carries an observed 2-byte
ExID in a shared option.
Abstract Data Type: octetArray Abstract Data Type: unsigned16
Data Type Semantics: identifier Data Type Semantics: identifier
Additional Information: See assigned ExIDs at [IANA-TCP-EXIDs]. Additional Information: See the TCP Experimental Option Experiment
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
4.3. tcpSharedOptionExID32 Information Element 4.3. tcpSharedOptionExID32 Information Element
Name: tcpSharedOptionExID32 Name: tcpSharedOptionExID32
ElementID: TBD7 ElementID: TBD10
Description: Observed Experiments IDs (ExIDs) in a shared TCP option Description: Reports an observed 4-byte ExID in a shared TCP option
(Kind=253 or 254) in a Flow. The information is encoded in a set (Kind=253 or 254) in a Flow.
of 32-bit fields. Each 32-bit field carries an observed 4-byte
ExID in a shared option.
Abstract Data Type: octetArray A basicList of tcpSharedOptionExID32 is used to report
tcpSharedOptionExID32List values.
Abstract Data Type: unsigned32
Data Type Semantics: identifier Data Type Semantics: identifier
Additional Information: See assigned ExIDs at [IANA-TCP-EXIDs]. Additional Information: See the TCP Experimental Option Experiment
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 4.4. tcpSharedOptionExID16List Information Element
5.1. IPv6 Extension Headers Name: tcpSharedOptionExID16List
The value of ipv6ExtensionHeadersFull and ipv6ExtensionHeaderCount ElementID: TBD11
IEs should be encoded in fewer octets as per the guidelines in
Section 6.2 of [RFC7011].
If an implementation determines that it includes an extension header Description: Reports observed 2-byte ExIDs in shared TCP options
that it does no support, then the exact observed code of that (Kind=253 or 254) in a Flow.
extension header will be echoed in the ipv6ExtensionHeaderCount IE
(Section 3.2). How an implementation disambiguates between unknown
upper-layer protocols vs. extension headers is not IPFIX-specific.
Readers may refer, for example, to Section 2.2 of [RFC8883] for a
behavior of an intermediate nodes that encounters an unknown Next
Header type. It is out of the scope of this document to discuss
those considerations.
The ipv6ExtensionHeadersLimit IE (Section 3.3) may or may not be A basicList of tcpSharedOptionExID16 IEs in which each
present when the ipv6ExtensionHeadersChainLength IE (Section 3.4) is tcpSharedOptionExID16 IE carries an observed 2-byte ExID in a
also present as these IEs are targeting distinct properties of shared option.
extension headers handling.
5.2. TCP Options Abstract Data Type: basicList
The value of tcpOptionsFull IE should be encoded in fewer octets as Data Type Semantics: list
per the guidelines in Section 6.2 of [RFC7011].
If a TCP Flow contains packets with a mix of 2-byte and 4-byte Additional Information: See the TCP Experimental Option Experiment
Experiment IDs, the same Template Record is used with both Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
tcpSharedOptionExID16 and tcpSharedOptionExID32 IEs.
See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options.
Reference: This-Document
4.5. tcpSharedOptionExID32List Information Element
Name: tcpSharedOptionExID32List
ElementID: TBD12
Description: Reports observed 4-byte ExIDs in shared TCP options
(Kind=253 or 254) in a Flow.
A basicList of tcpSharedOptionExID32 IEs in which each
tcpSharedOptionExID32 IE carries an observed 4-byte ExID in a
shared option.
Abstract Data Type: basicList
Data Type Semantics: list
Additional Information: See the TCP Experimental Option Experiment
Identifiers (TCP ExIDs) registry at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options.
Reference: This-Document
5. Implementation and Operational Considerations
Implementations of tcpSharedOptionExID16, tcpSharedOptionExID32,
tcpSharedOptionExID16List, and tcpSharedOptionExID32List IEs are
assumed to be provided with a list of valid ExIDs [IANA-TCP-EXIDs].
How that list is maintained is implementation-specific. Absent that
list, an implementation can't autonomously determine whether an ExID
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,
the same Template Record is used with both tcpSharedOptionExID16 and
tcpSharedOptionExID32 IEs.
6. Examples 6. Examples
This section provides few examples to illustrate the use of some IEs This section provides a few examples to illustrate the use of some
defined in the document. IEs defined in this document.
6.1. IPv6 Extension Headers 6.1. IPv6 Extension Headers
Figure 1 provides an example of reported values in an Figure 1 provides an example of EH/bit mappings in an
ipv6ExtensionHeadersFull IE for an IPv6 Flow in which only the IPv6 ipv6ExtensionHeadersFull IE for an IPv6 Flow in which only the IPv6
Destination Options header is observed. One octet is sufficient to Destination Options (0) header is observed. The bits are set
report these observed options. Concretely, the following the table provided in Section 8.4.1.
ipv6ExtensionHeadersFull IE will be set to 1.
MSB LSB MSB LSB
1 2 ...25 1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ... 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|0|0|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|0|0|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-++-+-+-+-+-+-+-+...+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
Figure 1: A First Example of Extension Headers Figure 1: A First Example of EH/Bit Mappings in the
ipv6ExtensionHeadersFull IE
Figure 2 provides another example of reported values in an The leading zeros are dropped per the reduced-size encoding guidance.
ipv6ExtensionHeadersFull IE for an IPv6 Flow in which the IPv6 Hop- One octet is thus sufficient to send these observed options on the
by-Hop Options, Routing, and Destination Options headers are wire. Concretely, the ipv6ExtensionHeadersFull IE will be set to
0x01 (Figure 2).
MSB LSB
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|1|
+-+-+-+-+-+-+-+-+
Figure 2: A First Example of ipv6ExtensionHeadersFull IE with
Reduced-size Encoding
Figure 3 provides another example of reported values in an
ipv6ExtensionHeadersFull IE for an IPv6 Flow in which the Destination
Options (0), IPv6 Hop-by-Hop Options (1), and Routing (5) headers are
observed. One octet is sufficient to report these observed options. observed. One octet is sufficient to report these observed options.
Concretely, the ipv6ExtensionHeadersFull IE will be set to 35. Concretely, the ipv6ExtensionHeadersFull IE will be set to 0x23.
MSB LSB MSB LSB
1 2 ...25 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ... 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+ |0|0|1|0|0|0|1|1|
|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|0|0|1|1| +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+
Figure 2: A Second Example of Extension Headers Figure 3: A Second Example of ipv6ExtensionHeadersFull IE with
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
Given TCP kind allocation practices and the option mapping defined in 6.2.1. Reduced-size Encoding
Section 4.1, fewer octers are likely to be used for Flows with common
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
TCP options. TCP options.
Figure 3 shows an example of reported values 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, Maximum Segment Size, and for a TCP Flow in which End of Option List (0), Maximum Segment Size
Window Scale options are observed. One octet is sufficient to report (2), and Window Scale (3) options are observed.
these observed options. Concretely, the tcpOptionsFull IE will be
set to 13.
MSB LSB MSB LSB
1 2 ...25 1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ... 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|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 3: First Example of TCP Options Figure 5: An Example of TCP Options / Bit Mappings in a
tcpOptionsFull IE
Let's consider a TCP Flow in which shared options with ExIDs 0x0348 One octet is sufficient to report these observed options.
(HOST_ID) [RFC7974], 0x454E (TCP-ENO) [RFC8547], and 0xE2D4C3D9 Concretely, the tcpOptionsFull IE will be set to 0x0D (Figure 6).
(Shared Memory communications over RMDA protocol) [RFC7609] are
observed. As shown in Figure 4, two TCP shared IEs will be used to
report these observed ExIDs:
1. The tcpSharedOptionExID16 IE set to 55067982 (i.e., 0x348454E) to MSB LSB
report observed 2-byte ExIDs: HOST_ID and TCP-ENO ExIDs. 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|0|0|0|0|1|1|0|1|
+-+-+-+-+-+-+-+-+
2. The tcpSharedOptionExID32 IE set to 3805594585 (i.e., 0xE2D4C3D9) Figure 6: An Example of tcpOptionsFull IE with Reduced-size Encdoing
to report the only observed 4-byte ExID.
tcpSharedOptionExID16 IE: 6.2.2. Shared Options
MSB LSB Let us consider a TCP Flow in which shared options with ExIDs 0x0348
1 2 3 (HOST_ID) [RFC7974], 0x454E (TCP-ENO) [RFC8547], and 0xE2D4C3D9
(Shared Memory communications over RMDA protocol) [RFC7609] are
observed. Figure 7 shows an excerpt of the Data Set encoding with a
focus on the tcpSharedOptionExID16 and tcpSharedOptionExID32 IEs.
The meaning of the fields is defined in [RFC6313].
MSB LSB
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|tcpSharedOptionExID16 = TBD9 | Field Length = 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x0348 | 0x454E | | 0x0348 | 0x454E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 255 | List Length = 9 |semantic=allof |
tcpSharedOptionExID32 IE: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|tcpSharedOptionExID32 = TBD10 | Field Length = 4 |
MSB LSB
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0xE2D4C3D9 | | 0xE2D4C3D9 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: ... :
Figure 4: 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]. This document does not add new security considerations [RFC7011].
for exporting IEs other than those already discussed in Section 8 of
[RFC7012]. ipv6ExtensionHeadersChainLength and ipv6ExtensionHeadersLimit IEs can
be exploited by an unauthorized observer as a means to deduce the
processing capabilities of nodes. Section 8 of [RFC7012] discusses
the required measures to guarantee the integrity and confidentiality
of the exported information.
This document does not add new security considerations for exporting
IEs other than those already discussed in Section 8 of [RFC7012].
8. IANA Considerations 8. IANA Considerations
8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information Elements
This document requests IANA to update the "IPFIX Information
Elements" registry under the "IP Flow Information Export (IPFIX)
Entities" registry group [IANA-IPFIX] as follows:
* Update the ipv6ExtensionHeaders IE (64) entry by marking it as
deprecated in favor of the ipv6ExtensionHeadersFull IE defined in
this document. This note should also be echoed in the "Additional
Information" of the ipv6ExtensionHeaders IE.
* Update the tcpOptions IE (209) entry by marking it as deprecated
in favor of the tcpOptionsFull IE defined in this document. This
note should also be echoed in the "Additional Information" of the
tcpOptions IE.
IANA is also requested to update the reference of
ipv6ExtensionHeaders IE (64) and tcpOptions IE (209) to point to this
document.
8.2. IPFIX Information Elements
This document requests IANA to add the following new IPFIX IEs to the This document requests IANA to add the following new IPFIX IEs to the
IANA IPFIX registry [IANA-IPFIX]: "IPFIX Information Elements" registry under the "IP Flow Information
Export (IPFIX) Entities" registry group [IANA-IPFIX]:
+=======+=================================+================+ +=======+====================================+================+
| Value | Name | Reference | | Value | Name | Reference |
+=======+=================================+================+ +=======+====================================+================+
| TBD1 | ipv6ExtensionHeadersFull | Section 3.1 of | | TBD1 | ipv6ExtensionHeader | Section 3.1 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD2 | ipv6ExtensionHeaderCount | Section 3.2 of | | TBD2 | ipv6ExtensionHeaderCount | Section 3.2 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD3 | ipv6ExtensionHeadersLimit | Section 3.3 of | | TBD3 | ipv6ExtensionHeadersFull | Section 3.3 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD4 | ipv6ExtensionHeadersChainLength | Section 3.4 of | | TBD4 | ipv6ExtensionHeaderTypeCountList | Section 3.4 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD5 | tcpOptionsFull | Section 4.1 of | | TBD5 | ipv6ExtensionHeadersLimit | Section 3.5 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD6 | tcpSharedOptionExID16 | Section 4.2 of | | TBD6 | ipv6ExtensionHeadersChainLength | Section 3.6 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD7 | tcpSharedOptionExID32 | Section 4.3 of | | TBD7 | ipv6ExtensionHeaderChainLengthList | Section 3.7 of |
| | | This-Document | | | | This-Document |
+-------+---------------------------------+----------------+ +-------+------------------------------------+----------------+
| TBD8 | tcpOptionsFull | Section 4.1 of |
| | | This-Document |
+-------+------------------------------------+----------------+
| TBD9 | tcpSharedOptionExID16 | Section 4.2 of |
| | | This-Document |
+-------+------------------------------------+----------------+
| TBD10 | tcpSharedOptionExID32 | Section 4.3 of |
| | | This-Document |
+-------+------------------------------------+----------------+
| TBD11 | tcpSharedOptionExID16List | Section 4.4 of |
| | | This-Document |
+-------+------------------------------------+----------------+
| TBD12 | tcpSharedOptionExID32List | Section 4.5 of |
| | | This-Document |
+-------+------------------------------------+----------------+
Table 1: New IPFIX Information Elements Table 1: New IPFIX Information Elements
8.3. IPFIX Information Element Data Type
This document requests IANA to add the following new abstract data
type to the "IPFIX Information Element Data Types" registry under the
"IP Flow Information Export (IPFIX) Entities" registry group
[IANA-IPFIX]:
+=======+=============+===============+
| Value | Description | Reference |
+=======+=============+===============+
| TBD10 | unsigned256 | This-Document |
+-------+-------------+---------------+
Table 2: New IPFIX Information
Element Data Type
8.3.1. unsigned256
The type "unsigned256" represents a non-negative integer value in the
range of '0' to '2^256 - 1'. Similar to Section 6.1.1 of [RFC7011],
this type MUST be encoded using the default canonical format in
network byte order.
Reduced-Size encoding (Section 6.2 of [RFC7011]) applies to this data
type. The reduction in size can be to any number of octets smaller
than the unsigned256 type if the data value still fits, i.e., so that
only leading zeroes are dropped.
8.4. IPFIX Subregistry for IPv6 Extension Headers
This document requests IANA to create a new registry entitled
"ipv6ExtensionHeaders Bits" under the IANA IPFIX registry group
[IANA-IPFIX].
When a new code is assigned to an IPv6 EH in [IANA-EH], the next
available free bit is selected by IANA for this EH from
"ipv6ExtensionHeaders Bits" registry and the registry is updated with
the details that mirror the assigned EH. The "Label" mirrors the
"keyword" of an EH as indicated in [IANA-Protocols], while the
"Protocol Number" mirrors the "Protocol Number" in [IANA-EH]. IANA
is requested to add the following note to [IANA-EH]:
Note: When a new code is assigned to an IPv6 Extension Header,
the next available free bit in [NEW_IPFIX_IPv6EH_SUBREGISTRY]
is selected for this new Extension Header.
[NEW_IPFIX_IPv6EH_SUBREGISTRY] is updated accordingly.
Modifications to existing registrations must be mirrored in
[NEW_IPFIX_IPv6EH_SUBREGISTRY].
Note to the RFC Editor: Please replace
[NEW_IPFIX_IPv6EH_SUBREGISTRY] with the link used by IANA for this
new registry.
Otherwise, the registration policy for the registry is Expert Review
(Section 4.5 of [RFC8126]). See more details in Section 8.4.2.
8.4.1. Initial Values
The initial values of this registry are provided in Table 3.
+=====+=======+==========+=========================+===============+
| Bit | Label | Protocol | Description | Reference |
| | | Number | | |
+=====+=======+==========+=========================+===============+
| 0 | DST | 60 | Destination Options for | This-Document |
| | | | IPv6 | |
+-----+-------+----------+-------------------------+---------------+
| 1 | HOP | 0 | IPv6 Hop-by-Hop Options | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 2 | NoNxt | 59 | No Next Header for IPv6 | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 3 | UNK | | Unknown extension or | This-Document |
| | | | transport header | |
+-----+-------+----------+-------------------------+---------------+
| 4 | FRA0 | 44 | Fragment header - first | This-Document |
| | | | fragment | |
+-----+-------+----------+-------------------------+---------------+
| 5 | RH | 43 | Routing header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 6 | FRA1 | 44 | Fragmentation header - | This-Document |
| | | | not first fragment | |
+-----+-------+----------+-------------------------+---------------+
| 7 | MOB | 135 | Mobility Header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 8 | ESP | 50 | Encapsulating Security | This-Document |
| | | | Payload | |
+-----+-------+----------+-------------------------+---------------+
| 9 | AH | 51 | Authentication Header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 10 | HIP | 139 | Host Identity Protocol | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 11 | SHIM6 | 140 | Shim6 Protocol | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 12 | | 253 | Use for experimentation | This-Document |
| | | | and testing | |
+-----+-------+----------+-------------------------+---------------+
| 13 | | 254 | Use for experimentation | This-Document |
| | | | and testing | |
+-----+-------+----------+-------------------------+---------------+
| 14 | | | Unassigned | |
| to | | | | |
| 255 | | | | |
+-----+-------+----------+-------------------------+---------------+
Table 3: Initial Values of the IPv6 Extension Headers IPFIX
Subregistry
8.4.2. Guidelines for the Designated Experts
It is suggested that multiple designated experts be appointed for
registry change requests.
Designated experts are solicited only for changes that are not
covered by the automatic mirroring described above. For example, a
registration may request two bits for a new EH to cover specific
behaviors or uses of that EH.
Criteria that should be applied by the designated experts include
determining whether the proposed registration duplicates existing
entries, whether the exception to the automatic mirroring procedure
is justified, and whether the registration description is clear and
fits the purpose of this registry.
Within the review period, the designated experts will either approve
or deny the registration request, communicating this decision to the
IANA. Denials should include an explanation and, if applicable,
suggestions as to how to make the request successful.
9. References 9. References
9.1. Normative References 9.1. Normative References
[IANA-EH] IANA, "Internet Protocol Version 6 (IPv6) Parameters, IPv6 [IANA-EH] IANA, "Internet Protocol Version 6 (IPv6) Parameters, IPv6
Extension Header Types", Extension Header Types",
<https://www.iana.org/assignments/ipv6-parameters/ <https://www.iana.org/assignments/ipv6-parameters/ipv6-
ipv6-parameters.xhtml#ipv6-parameters-1>. parameters.xhtml#extension-header>.
[IANA-IPFIX] [IANA-IPFIX]
IANA, "IP Flow Information Export (IPFIX) Entities", IANA, "IP Flow Information Export (IPFIX) Entities",
<https://www.iana.org/assignments/ipfix/ipfix.xhtml>. <https://www.iana.org/assignments/ipfix/ipfix.xhtml>.
[IANA-Protocols]
IANA, "Protocol Numbers",
<https://www.iana.org/assignments/protocol-numbers/
protocol-numbers.xhtml>.
[IANA-TCP] IANA, "Transmission Control Protocol (TCP) Parameters, TCP [IANA-TCP] IANA, "Transmission Control Protocol (TCP) Parameters, TCP
Option Kind Numbers", <https://www.iana.org/assignments/ Option Kind Numbers", <https://www.iana.org/assignments/
tcp-parameters/tcp-parameters.xhtml#tcp-parameters-1>. tcp-parameters/tcp-parameters.xhtml#tcp-parameters-1>.
[IANA-TCP-EXIDs] [IANA-TCP-EXIDs]
IANA, "Transmission Control Protocol (TCP) Parameters, TCP IANA, "Transmission Control Protocol (TCP) Parameters, TCP
Experimental Option Experiment Identifiers (TCP ExIDs)", Experimental Option Experiment Identifiers (TCP ExIDs)",
<https://www.iana.org/assignments/tcp-parameters/tcp- <https://www.iana.org/assignments/tcp-parameters/tcp-
parameters.xhtml#tcp-exids>. parameters.xhtml#tcp-exids>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>. <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates,
"Export of Structured Data in IP Flow Information Export
(IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011,
<https://www.rfc-editor.org/rfc/rfc6313>.
[RFC6994] Touch, J., "Shared Use of Experimental TCP Options", [RFC6994] Touch, J., "Shared Use of Experimental TCP Options",
RFC 6994, DOI 10.17487/RFC6994, August 2013, RFC 6994, DOI 10.17487/RFC6994, August 2013,
<https://www.rfc-editor.org/rfc/rfc6994>. <https://www.rfc-editor.org/rfc/rfc6994>.
[RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken,
"Specification of the IP Flow Information Export (IPFIX) "Specification of the IP Flow Information Export (IPFIX)
Protocol for the Exchange of Flow Information", STD 77, Protocol for the Exchange of Flow Information", STD 77,
RFC 7011, DOI 10.17487/RFC7011, September 2013, RFC 7011, DOI 10.17487/RFC7011, September 2013,
<https://www.rfc-editor.org/rfc/rfc7011>. <https://www.rfc-editor.org/rfc/rfc7011>.
[RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model [RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model
for IP Flow Information Export (IPFIX)", RFC 7012, for IP Flow Information Export (IPFIX)", RFC 7012,
DOI 10.17487/RFC7012, September 2013, DOI 10.17487/RFC7012, September 2013,
<https://www.rfc-editor.org/rfc/rfc7012>. <https://www.rfc-editor.org/rfc/rfc7012>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/rfc/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200, (IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017, DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/rfc/rfc8200>. <https://www.rfc-editor.org/rfc/rfc8200>.
[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-opsawg-ipfix-fixes] [I-D.ietf-6man-eh-limits]
Boucadair, M. and B. Claise, "Simple Fixes to the IP Flow Herbert, T., "Limits on Sending and Processing IPv6
Information Export (IPFIX) IANA Registry", Work in Extension Headers", Work in Progress, Internet-Draft,
Progress, Internet-Draft, draft-ietf-opsawg-ipfix-fixes- draft-ietf-6man-eh-limits-13, 12 June 2024,
03, 17 October 2023, <https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh-
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg- limits-13>.
ipfix-fixes-03>.
[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 15, line 31 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 and Eric Vyncke for the review and comments. Thanks to Paul Aitken, Éric Vyncke, and Joe Touch for the reviews and
comments. Special thanks to Andrew Feren for sharing data about
scans of IPFIX data he collected.
Thanks to Wesley Eddy for the tsvart review, Yingzhen Qu for the
opsdir review, Dirk Von Hugo for intdir review, Joel Halpern for the
genart review, and Tero Kivinen for the secdir review.
Thanks to Thomas Graf for the Shepherd 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. 111 change blocks. 
264 lines changed or deleted 679 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/