QUIC: Update to ACK Frequency draft07

need frame type for immediate_ack (0x1f), kept old for compability (0xac)

add also new TP type (0xff04de1b)
This commit is contained in:
Alexis La Goutte 2023-10-30 11:15:11 +01:00 committed by John Thacker
parent c9b1866ca0
commit 35da15174b
3 changed files with 12 additions and 6 deletions

View File

@ -22,7 +22,7 @@
* Extension:
* https://tools.ietf.org/html/draft-ferrieuxhamchaoui-quic-lossbits-03
* https://tools.ietf.org/html/draft-huitema-quic-ts-02
* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-04
* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-07 (and also draft-04/05)
* https://tools.ietf.org/html/draft-deconinck-quic-multipath-06
* https://tools.ietf.org/html/draft-banks-quic-cibir-01
* https://tools.ietf.org/html/draft-ietf-quic-multipath-05 (and also draft-04)
@ -681,6 +681,7 @@ static const value_string quic_v2_long_packet_type_vals[] = {
#define FT_RETIRE_CONNECTION_ID 0x19
#define FT_PATH_CHALLENGE 0x1a
#define FT_PATH_RESPONSE 0x1b
#define FT_IMMEDIATE_ACK 0x1f
#define FT_CONNECTION_CLOSE_TPT 0x1c
#define FT_CONNECTION_CLOSE_APP 0x1d
#define FT_HANDSHAKE_DONE 0x1e
@ -693,8 +694,8 @@ static const value_string quic_v2_long_packet_type_vals[] = {
#define FT_REMOVE_ADDRESS 0x45
#define FT_UNIFLOWS 0x46
#define FT_DATAGRAM_LENGTH 0x31
#define FT_IMMEDIATE_ACK 0xAC
#define FT_ACK_FREQUENCY 0xAF
#define FT_IMMEDIATE_ACK_DRAFT05 0xac /* ack-frequency-draft-05 */
#define FT_ACK_FREQUENCY 0xaf
#define FT_ACK_MP_DRAFT04 0xbaba00 /* multipath-draft-04 */
#define FT_ACK_MP_ECN_DRAFT04 0xbaba01 /* multipath-draft-04 */
#define FT_PATH_ABANDON_DRAFT04 0xbaba05 /* multipath-draft-04 */
@ -729,6 +730,7 @@ static const range_string quic_frame_type_vals[] = {
{ 0x1c, 0x1c, "CONNECTION_CLOSE (Transport)" },
{ 0x1d, 0x1d, "CONNECTION_CLOSE (Application)" },
{ 0x1e, 0x1e, "HANDSHAKE_DONE" },
{ 0x1f, 0x1f, "IMMEDIATE_ACK" },
{ 0x30, 0x31, "DATAGRAM" },
{ 0x40, 0x40, "MP_NEW_CONNECTION_ID" },
{ 0x41, 0x41, "MP_RETIRE_CONNECTION_ID" },
@ -736,7 +738,7 @@ static const range_string quic_frame_type_vals[] = {
{ 0x44, 0x44, "ADD_ADDRESS" },
{ 0x45, 0x45, "REMOVE_ADDRESS" },
{ 0x46, 0x46, "UNIFLOWS" },
{ 0xAC, 0xAC, "IMMEDIATE_ACK" },
{ 0xac, 0xac, "IMMEDIATE_ACK (draft05)" }, /* ack-frequency-draft-05 */
{ 0xaf, 0xaf, "ACK_FREQUENCY" },
{ 0x02f5, 0x02f5, "TIME_STAMP" },
{ 0xbaba00, 0xbaba01, "ACK_MP" }, /* multipath-draft-04 */
@ -2704,6 +2706,7 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
offset += (guint32)length;
}
break;
case FT_IMMEDIATE_ACK_DRAFT05:
case FT_IMMEDIATE_ACK:
col_append_fstr(pinfo->cinfo, COL_INFO, ", IA");
break;

View File

@ -2411,6 +2411,7 @@ const val64_string quic_transport_parameter_id[] = {
{ SSL_HND_QUIC_TP_GOOGLE_CONNECTION_OPTIONS, "google_connection_options" },
{ SSL_HND_QUIC_TP_FACEBOOK_PARTIAL_RELIABILITY, "facebook_partial_reliability" },
{ SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1, "min_ack_delay (draft-01)" },
{ SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT05, "min_ack_delay (draft-05)" },
{ SSL_HND_QUIC_TP_MIN_ACK_DELAY, "min_ack_delay" },
{ SSL_HND_QUIC_TP_ENABLE_MULTIPATH_DRAFT04, "enable_multipath (draft-04)" },
{ SSL_HND_QUIC_TP_ENABLE_MULTIPATH, "enable_multipath" },
@ -8328,7 +8329,8 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv
break;
case SSL_HND_QUIC_TP_MIN_ACK_DELAY_OLD:
case SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1:
case SSL_HND_QUIC_TP_MIN_ACK_DELAY :
case SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT05:
case SSL_HND_QUIC_TP_MIN_ACK_DELAY:
proto_tree_add_item_ret_varint(parameter_tree, hf->hf.hs_ext_quictp_parameter_min_ack_delay,
tvb, offset, -1, ENC_VARINT_QUIC, &value, &len);
proto_item_append_text(parameter_tree, " %" PRIu64, value);

View File

@ -199,7 +199,8 @@ typedef enum {
/* https://github.com/facebookincubator/mvfst/blob/master/quic/QuicConstants.h */
#define SSL_HND_QUIC_TP_FACEBOOK_PARTIAL_RELIABILITY 0xFF00
#define SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1 0xFF03DE1A /* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-01 */
#define SSL_HND_QUIC_TP_MIN_ACK_DELAY 0xFF04DE1A /* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-04 */
#define SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT05 0xff04de1a /* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-04 / draft-05 */
#define SSL_HND_QUIC_TP_MIN_ACK_DELAY 0xff04de1b /* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-07 */
#define SSL_HND_QUIC_TP_ENABLE_MULTIPATH_DRAFT04 0x0F739BBC1B666D04 /* https://tools.ietf.org/html/draft-ietf-quic-multipath-04 */
#define SSL_HND_QUIC_TP_ENABLE_MULTIPATH 0x0F739BBC1B666D05 /* https://tools.ietf.org/html/draft-ietf-quic-multipath-05 */
/*