| Internet-Draft | Export of QUIC Information in IPFIX | November 2025 |
| Lin, et al. | Expires 7 May 2026 | [Page] |
This document introduces new IP Flow Information Export (IPFIX) Information Elements to identify a set of QUIC related information, which contained in QUIC Header, QUIC Frame and Stream that traffic is being forwarded along with.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 7 May 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
QUIC Packets are carried in UDP datagrams and exchanged for communication of QUIC endpoints [RFC9000]. A QUIC packet normally consists of a QUIC Header and a QUIC Payload.¶
QUIC Header is divided into Long Header and Short Header. Long Headers are used for packets that are sent prior to the establishment of 1-RTT keys. The Long Header contains an 8-bit Public Flag, a 32-bit QUIC Version, a variable-length Destination Connection ID, a variable-length Source Connection ID and Type-Specific field which has different content based on the Packet type. The Packet types that use the Long Header contain Version Negotiation Packet, Initial Packet, 0-RTT Packet, Handshake Packet and Retry Packet. Once 1-RTT keys are available, a sender switches to sending 1-RTT packets using the Short Header. The Short Header includes an 8-bit Public Flag, a variable-length Destination Connection ID and a Packet Number.¶
QUIC payload MAY contain a sequence of Frames which begin with a Frame Type. In the generic Frame Layout, the Frame Type is followed by additional type-dependent fields. Since Stream in QUIC is the one core component to provide a lightweight, ordered byte-stream abstraction to an application, the Stream ID of Frames related to Stream is an important information that indicates the stream in which the Frame is located or that the Frame affects.¶
QUIC packets provide varying levels of cryptographic protection depending on their type [RFC9000]. While the entire QUIC payload MUST be encrypted, certain fields in the QUIC Header are not protected, as described in the Section 2.1 of [RFC9312]. For details on QUIC's packet protection mechanisms, refer to Section 5 of [RFC9001]. The protected fields of QUIC packets can only be accessed after successful decryption.¶
This document specifies several new IPFIX Information Elements (IEs) within the "IPFIX Information Elements" registry [RFC7012] for purposes of getting QUIC related information. These IEs are used to export the main fields of QUIC Header and Payload in QUIC packet. The protected values of some new IEs are accessible exclusively to devices capable of decrypting QUIC packets, specifically, the endpoints of a QUIC connection.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document makes use of the terms defined in [RFC7011] and [RFC9000].¶
This section specifies the new IPFIX QUIC IEs.¶
The IPFIX IEs listed in the Section 3, forwardingStatus (89) [RFC7270] and some existing counter information [IANA-IPFIX] provide answers to the following questions (amongst others).¶
How many packets are forwarded or dropped using QUIC in a network?¶
If dropped, for which reasons?¶
What is the type of QUIC packet?¶
What is the QUIC version that is in use or negotiation?¶
What is the Destination or Source Connection ID of QUIC packet?¶
Have all the QUIC packets been fully received?¶
Which frames does the QUIC packet carry?¶
Which stream is the QUIC packet located in?¶
For Long Header Packet, the following parameters is used to represent a QUIC flow by IPFIX:¶
Five-tuple (protocol, source and destination IP address, source and destination port)¶
Source Connection ID.¶
Destination Connection ID.¶
Example:¶
When the Long Packet Type is observed in a Flow during a QUIC connection, Flow information includes:¶
Five-tuple + Source Connection ID + Destination Connection ID + Header Flag¶
For Short Header Packet, the following parameters is used to represent a QUIC flow:¶
Five-tuple (protocol, source and destination IP address, source and destination port)¶
Destination Connection ID.¶
Example:¶
When the Frame Type is observed in a Flow, Flow information includes:¶
Five-tuple + Destination Connection ID + Frame Type¶
When the Stream ID is observed in a Flow, Flow information includes:¶
Five-tuple + Destination Connection ID + Stream ID¶
There exists no extra security considerations regarding allocation of these new IPFIX IEs compared to [RFC7012].¶
This document requests IANA to add new IPFIX QUIC IEs to the "IPFIX Information Elements" registry [RFC7012] available at [IANA-IPFIX].¶
Table 1 lists the new IPFIX QUIC IEs:¶
+============+=============================+===============+
| Element ID | Name | Reference |
+============+=============================+===============+
| TBD1 | quicHeaderFlag | This document |
+------------+-----------------------------+---------------+
| TBD2 | quicVersion | This document |
+------------+-----------------------------+---------------+
| TBD3 | quicDestinationConnectionID | This document |
+------------+-----------------------------+---------------+
| TBD4 | quicSourceConnectionID | This document |
+------------+-----------------------------+---------------+
| TBD5 | quicPacketNumber | This document |
+------------+-----------------------------+---------------+
| TBD6 | quicFrameType | This document |
+------------+-----------------------------+---------------+
| TBD7 | quicStreamID | This document |
+------------+-----------------------------+---------------+
Table 1: New QUIC IEs in the "IPFIX Information Elements" Registry¶
The quicDestinationConnectionID can be used to track flow path consistency, but the Destination Connection ID in the Short Header Packet lacks a length indication, making it difficult to match on intermediate devices. Therefore, the Destination Connection ID or its length must be preconfigured on the intermediate devices.¶
The protected packet fields must be decrypted before they can be obtained. quicHeaderFlag, quicVersion, quicDestinationConnectionID, and quicSourceConnectionID can be obtained in all on-path devices. quicPacketNumber, quicFrameType, and quicStreamID can be obtained in endpoint devices or on-path devices which are capable of decrypting QUIC packets.¶