QUIC: add new Transport Parameter from draft-15

* max_ack_delay (0x000c)
* original_connection_id (0x000d)

Change-Id: I95fb14cf337faef57525afe1ec1a2d6e79edd3c7
Ping-Bug: 13881
Reviewed-on: https://code.wireshark.org/review/30418
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Alexis La Goutte 2018-10-28 16:36:50 +01:00 committed by Anders Broman
parent ffaa1a71c7
commit dcc150106c
2 changed files with 30 additions and 1 deletions

View File

@ -1370,6 +1370,8 @@ const value_string quic_transport_parameter_id[] = {
{ SSL_HND_QUIC_TP_DISABLE_MIGRATION, "disable_migration" },
{ SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE, "initial_max_stream_data_bidi_remote" },
{ SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI, "initial_max_stream_data_uni" },
{ SSL_HND_QUIC_TP_MAX_ACK_DELAY, "max_ack_delay" },
{ SSL_HND_QUIC_TP_ORIGINAL_CONNECTION_ID, "original_connection_id" },
{ 0, NULL }
};
@ -6602,6 +6604,8 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv
* disable_migration(9),
* initial_max_stream_data_bidi_remote(10),
* initial_max_stream_data_uni(11),
* max_ack_delay(12),
* original_connection_id(13),
* (65535)
* } TransportParameterId;
*
@ -6803,6 +6807,17 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv
proto_item_append_text(parameter_tree, " %u", tvb_get_ntohl(tvb, offset));
offset += 4;
break;
case SSL_HND_QUIC_TP_MAX_ACK_DELAY:
proto_tree_add_item(parameter_tree, hf->hf.hs_ext_quictp_parameter_max_ack_delay,
tvb, offset, 1, ENC_BIG_ENDIAN);
proto_item_append_text(parameter_tree, " %u", tvb_get_guint8(tvb, offset));
offset += 1;
break;
case SSL_HND_QUIC_TP_ORIGINAL_CONNECTION_ID:
proto_tree_add_item(parameter_tree, hf->hf.hs_ext_quictp_parameter_ocid,
tvb, offset, parameter_length, ENC_NA);
offset += parameter_length;
break;
default:
offset += parameter_length;
/*TODO display expert info about unknown ? */

View File

@ -162,6 +162,8 @@ typedef enum {
#define SSL_HND_QUIC_TP_DISABLE_MIGRATION 9
#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE 10
#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI 11
#define SSL_HND_QUIC_TP_MAX_ACK_DELAY 12
#define SSL_HND_QUIC_TP_ORIGINAL_CONNECTION_ID 13
/*
* Lookup tables
@ -882,6 +884,8 @@ typedef struct ssl_common_dissect {
gint hs_ext_quictp_parameter_initial_max_uni_streams;
gint hs_ext_quictp_parameter_initial_max_stream_data_bidi_remote;
gint hs_ext_quictp_parameter_initial_max_stream_data_uni;
gint hs_ext_quictp_parameter_max_ack_delay;
gint hs_ext_quictp_parameter_ocid;
gint esni_suite;
gint esni_record_digest_length;
@ -1111,7 +1115,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, \
}, \
/* ett */ { \
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \
@ -1997,6 +2001,16 @@ ssl_common_dissect_t name = { \
FT_UINT32, BASE_DEC, NULL, 0x00, \
"Initial stream maximum data for unidirectional streams parameter", HFILL } \
}, \
{ & name .hf.hs_ext_quictp_parameter_max_ack_delay, \
{ "max_ack_delay", prefix ".quic.parameter.max_ack_delay", \
FT_UINT8, BASE_DEC, NULL, 0x00, \
"Indicating the maximum amount of time in milliseconds by which it will delay sending of acknowledgments", HFILL } \
}, \
{ & name .hf.hs_ext_quictp_parameter_ocid, \
{ "original_connection_id", prefix ".quic.parameter.ocid", \
FT_BYTES, BASE_NONE, NULL, 0x00, \
"The value of the Destination Connection ID field from the first Initial packet sent by the client", HFILL } \
}, \
{ & name .hf.esni_suite, \
{ "Cipher Suite", prefix ".esni.suite", \
FT_UINT16, BASE_HEX|BASE_EXT_STRING, &ssl_31_ciphersuite_ext, 0x0, \