@@ -122,8 +122,7 @@ in the Concise Data Definition Language {{!CDDL=RFC8610}} and its
122122extensions described in {{QLOG-MAIN}}.
123123
124124The following fields from {{QLOG-MAIN}} are imported and used : name, namespace,
125- type, data, group_id, RawInfo, and time-related
126- fields.
125+ type, data, tuple, group_id, RawInfo, and time-related fields.
127126
128127Events are defined with an importance level as described in {{Section 8.3 of
129128QLOG-MAIN}}.
@@ -165,7 +164,7 @@ this specification.
165164| quic:connection_id_updated | Base | {{quic-connectionidupdated}} |
166165| quic:spin_bit_updated | Base | {{quic-spinbitupdated}} |
167166| quic:connection_state_updated | Base | {{quic-connectionstateupdated}} |
168- | quic:path_assigned | Base | {{quic-pathassigned }} |
167+ | quic:tuple_assigned | Base | {{quic-tupleassigned }} |
169168| quic:mtu_updated | Extra | {{quic-mtuupdated}} |
170169| quic:version_information | Core | {{quic-versioninformation}} |
171170| quic:alpn_information | Core | {{quic-alpninformation}} |
@@ -210,7 +209,7 @@ QuicEventData = QUICServerListening /
210209 QUICConnectionIDUpdated /
211210 QUICSpinBitUpdated /
212211 QUICConnectionStateUpdated /
213- QUICPathAssigned /
212+ QUICTupleAssigned /
214213 QUICMTUUpdated /
215214 QUICVersionInformation /
216215 QUICALPNInformation /
@@ -287,8 +286,8 @@ importance level.
287286
288287~~~ cddl
289288QUICConnectionStarted = {
290- local : PathEndpointInfo
291- remote : PathEndpointInfo
289+ local : TupleEndpointInfo
290+ remote : TupleEndpointInfo
292291
293292 * $$quic-connectionstarted-extension
294293}
@@ -489,56 +488,56 @@ implementations are allowed to use other ConnectionState values that adhere more
489488closely to their internal logic. Tools SHOULD be able to deal with these custom
490489states in a similar way to the pre-defined states in this document.
491490
492- # # path_assigned {#quic-pathassigned }
491+ # # tuple_assigned {#quic-tupleassigned }
493492Importance : Base
494493
495- This event is used to associate a single PathID 's value with other parameters
496- that describe a unique network path .
494+ This event is used to associate a single TupleID 's value with other parameters
495+ that describe a unique network tuple .
497496
498497As described in {{QLOG-MAIN}}, each qlog event can be linked to a single network
499- path by means of the top-level "path " field, whose value is a PathID . However,
500- since it can be cumbersome to encode additional path metadata (such as IP
501- addresses or Connection IDs) directly into the PathID , this event allows such an
502- association to happen separately. As such, PathIDs can be short and unique, and
498+ tuple by means of the top-level "tuple " field, whose value is a TupleID . However,
499+ since it can be cumbersome to encode additional tuple metadata (such as IP
500+ addresses or Connection IDs) directly into the TupleID , this event allows such an
501+ association to happen separately. As such, TupleIDs can be short and unique, and
503502can even be updated to be associated with new metadata as the connection's state
504503evolves.
505504
506505Definition :
507506
508507~~~ cddl
509- QUICPathAssigned = {
510- path_id : PathID
508+ QUICTupleAssigned = {
509+ tuple_id : TupleID
511510
512511 ; the information for traffic going towards the remote receiver
513- ? path_remote : PathEndpointInfo
512+ ? tuple_remote : TupleEndpointInfo
514513
515514 ; the information for traffic coming in at the local endpoint
516- ? path_local : PathEndpointInfo
515+ ? tuple_local : TupleEndpointInfo
517516
518- * $$quic-pathassigned -extension
517+ * $$quic-tupleassigned -extension
519518}
520519~~~
521- {: # quic-pathassigned -def title="QUICPathAssigned definition"}
520+ {: # quic-tupleassigned -def title="QUICTupleAssigned definition"}
522521
523- Choosing the different `path_id ` values is left up to the implementation. Some
522+ Choosing the different `tuple_id ` values is left up to the implementation. Some
524523options include using a uniquely incrementing integer, using the (first)
525- Destination Connection ID associated with a path (or its sequence number), or
524+ Destination Connection ID associated with a tuple (or its sequence number), or
526525using (a hash of) the two endpoint IP addresses.
527526
528- It is important to note that the empty string ("") is a valid PathID and that it
529- is the default assigned to events that do not explicitly set a "path " field. Put
530- differently, the initial path of a QUIC connection on which the handshake occurs
531- (see also {{quic-connectionstarted}}) is implicitly associated with the PathID
532- with value "". Associating metadata with this default path is possible by
533- logging the QUICPathAssigned event with a value of "" for the `path_id ` field.
534-
535- As paths and their metadata can evolve over time, multiple QUICPathAssigned
536- events can be emitted for each unique PathID . The latest event contains the most
537- up-to-date information for that PathID . As such, the first time a PathID is seen
538- in a QUICPathAssigned event, it is an indication that the path is
539- created. Subsequent occurrences indicate the path is updated, while a final
540- occurrence with both `path_local ` and `path_remote` fields omitted implicitly
541- indicates the path has been abandoned.
527+ It is important to note that the empty string ("") is a valid TupleID and that
528+ it is the default assigned to events that do not explicitly set a "tuple " field.
529+ Put differently, the initial tuple of a QUIC connection on which the handshake
530+ occurs (see also {{quic-connectionstarted}}) is implicitly associated with the
531+ TupleID with value "". Associating metadata with this default tuple is possible by
532+ logging the QUICTupleAssigned event with a value of "" for the `tuple_id ` field.
533+
534+ As the usage of TupleIDs and their metadata can evolve over time, multiple
535+ QUICTupleAssigned events can be emitted for each unique TupleID . The latest
536+ event contains the most up-to-date information for that TupleID . As such, the
537+ first time a TupleID is seen in a QUICTupleAssigned event, it is an indication
538+ that the TupleID is created. Subsequent occurrences indicate the TupleID is
539+ updated, while a final occurrence with both `tuple_local ` and `tuple_remote`
540+ fields omitted implicitly indicates the TupleID has been abandoned.
542541
543542# # mtu_updated {#quic-mtuupdated}
544543
@@ -1359,7 +1358,7 @@ QUICDatagramDataBlockedUpdated = {
13591358Use to provide additional information when attempting (client-side) connection
13601359migration. While most details of the QUIC connection migration process can be
13611360inferred by observing the PATH_CHALLENGE and PATH_RESPONSE frames, in
1362- combination with the QUICPathAssigned event, it can be useful to explicitly log
1361+ combination with the QUICTupleAssigned event, it can be useful to explicitly log
13631362the progression of the migration and potentially made decisions in a single
13641363location/event. The event has Extra importance level.
13651364
@@ -1368,7 +1367,7 @@ phase (which is not always needed/present), and a migration phase (which can be
13681367abandoned upon error).
13691368
13701369Implementations that log per-path information in a QUICMigrationStateUpdated,
1371- SHOULD also emit QUICPathAssigned events, to serve as a ground-truth source of
1370+ SHOULD also emit QUICTupleAssigned events, to serve as a ground-truth source of
13721371information.
13731372
13741373Definition :
@@ -1378,13 +1377,13 @@ QUICMigrationStateUpdated = {
13781377 ? old : MigrationState
13791378 new : MigrationState
13801379
1381- ? path_id : PathID
1380+ ? tuple_id : TupleID
13821381
13831382 ; the information for traffic going towards the remote receiver
1384- ? path_remote : PathEndpointInfo
1383+ ? tuple_remote : TupleEndpointInfo
13851384
13861385 ; the information for traffic coming in at the local endpoint
1387- ? path_local : PathEndpointInfo
1386+ ? tuple_local : TupleEndpointInfo
13881387
13891388 * $$quic-migrationstateupdated-extension
13901389}
@@ -1785,33 +1784,33 @@ IPAddress = text /
17851784~~~
17861785{: # ipaddress-def title="IPAddress definition"}
17871786
1788- # # PathEndpointInfo
1787+ # # TupleEndpointInfo
17891788
1790- PathEndpointInfo indicates a single half/direction of a path . A full path is
1791- comprised of two halves. Firstly : the server sends to the remote client IP
1789+ TupleEndpointInfo indicates a single half/direction of a four-tuple . A full tuple
1790+ is comprised of two halves. Firstly : the server sends to the remote client IP
17921791+ port using a specific destination Connection ID. Secondly : the client sends to
17931792the remote server IP + port using a different destination Connection ID.
17941793
1795- As such, structures logging path information SHOULD include two different
1796- PathEndpointInfo instances, one for each half of the path .
1794+ As such, structures logging tuple information SHOULD include two different
1795+ TupleEndpointInfo instances, one for each half of the tuple .
17971796
17981797~~~ cddl
1799- PathEndpointInfo = {
1798+ TupleEndpointInfo = {
18001799 ? ip_v4 : IPAddress
18011800 ? port_v4 : uint16
18021801 ? ip_v6 : IPAddress
18031802 ? port_v6 : uint16
18041803
18051804 ; Even though usually only a single ConnectionID
1806- ; is associated with a given path at a time,
1805+ ; is associated with a given tuple/ path at a time,
18071806 ; there are situations where there can be an overlap
18081807 ; or a need to keep track of previous ConnectionIDs
18091808 ? connection_ids : [+ ConnectionID]
18101809
1811- * $$quic-pathendpointinfo -extension
1810+ * $$quic-tupleendpointinfo -extension
18121811}
18131812~~~
1814- {: # pathendpointinfo -def title="PathEndpointInfo definition"}
1813+ {: # tupleendpointinfo -def title="TupleEndpointInfo definition"}
18151814
18161815# # PacketType
18171816
@@ -2428,7 +2427,7 @@ Event Types
24282427 connection_id_updated,
24292428 spin_bit_updated,
24302429 connection_state_updated,
2431- path_assigned ,
2430+ tuple_assigned ,
24322431 mtu_updated,
24332432 version_information,
24342433 alpn_information,
0 commit comments