From b10179faf2706cc4182534f93b571b30fef4505b Mon Sep 17 00:00:00 2001 From: Alexis La Goutte Date: Wed, 3 Jan 2018 08:04:43 +0100 Subject: TLS(QUIC): Add ACK_delay_exponent parameter from draft-07 Bug: 13881 Change-Id: I56ac681174e4058c4d4fefe40084905538222c1b Reviewed-on: https://code.wireshark.org/review/25119 Reviewed-by: Anders Broman --- epan/dissectors/packet-ssl-utils.c | 7 +++++++ epan/dissectors/packet-ssl-utils.h | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c index ae4a3fa782..725aedb6f4 100644 --- a/epan/dissectors/packet-ssl-utils.c +++ b/epan/dissectors/packet-ssl-utils.c @@ -1430,6 +1430,7 @@ const value_string quic_transport_parameter_id[] = { { SSL_HND_QUIC_TP_OMIT_CONNECTION_ID, "omit_connection_id" }, { SSL_HND_QUIC_TP_MAX_PACKET_SIZE, "max_packet_size" }, { SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN, "stateless_reset_token" }, + { SSL_HND_QUIC_TP_ACK_DELAY_EXPONENT, "ack_delay_exponent" }, { 0, NULL } }; @@ -6595,6 +6596,12 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv tvb, offset, 16, ENC_BIG_ENDIAN); offset += 16; break; + case SSL_HND_QUIC_TP_ACK_DELAY_EXPONENT: + proto_tree_add_item(parameter_tree, hf->hf.hs_ext_quictp_parameter_ack_delay_exponent, + tvb, offset, 1, ENC_BIG_ENDIAN); + /*TODO display multiplier (x8) and expert info about invaluid value (> 20) ? */ + offset += 1; + break; default: offset += parameter_length; /*TODO display expert info about unknown ? */ diff --git a/epan/dissectors/packet-ssl-utils.h b/epan/dissectors/packet-ssl-utils.h index 418f4fabe3..a984c580a0 100644 --- a/epan/dissectors/packet-ssl-utils.h +++ b/epan/dissectors/packet-ssl-utils.h @@ -212,6 +212,7 @@ typedef enum { #define SSL_HND_QUIC_TP_OMIT_CONNECTION_ID 4 #define SSL_HND_QUIC_TP_MAX_PACKET_SIZE 5 #define SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN 6 +#define SSL_HND_QUIC_TP_ACK_DELAY_EXPONENT 7 /* * Lookup tables */ @@ -898,6 +899,7 @@ typedef struct ssl_common_dissect { gint hs_ext_quictp_parameter_idle_timeout; gint hs_ext_quictp_parameter_max_packet_size; gint hs_ext_quictp_parameter_stateless_reset_token; + gint hs_ext_quictp_parameter_ack_delay_exponent; /* do not forget to update SSL_COMMON_LIST_T and SSL_COMMON_HF_LIST! */ } hf; @@ -1105,7 +1107,7 @@ ssl_common_dissect_t name = { \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ }, \ /* ett */ { \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ @@ -1905,6 +1907,11 @@ ssl_common_dissect_t name = { \ { "stateless_reset_token", prefix ".quic.parameter.stateless_reset_token", \ FT_BYTES, BASE_NONE, NULL, 0x00, \ "Used in verifying a stateless reset", HFILL } \ + }, \ + { & name .hf.hs_ext_quictp_parameter_ack_delay_exponent, \ + { "ack_delay_exponent", prefix ".quic.parameter.ack_delay_exponent", \ + FT_UINT8, BASE_DEC, NULL, 0x00, \ + "Indicating an exponent used to decode the ACK Delay field in the ACK frame,", HFILL } \ } /* }}} */ -- cgit v1.2.3