From 55065ba4b9c184370479c053dad5a84c13f3deed Mon Sep 17 00:00:00 2001 From: Nick Banks Date: Tue, 18 Sep 2018 08:39:23 -0700 Subject: [PATCH 1/3] Make Idle Timeout Optional --- draft-ietf-quic-transport.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index ffe7191d7a..6c96e27281 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -1606,14 +1606,6 @@ type TRANSPORT_PARAMETER_ERROR. ### Transport Parameter Definitions -An endpoint MUST include the following parameters in its encoded -TransportParameters: - -idle_timeout (0x0003): - -: The idle timeout is a value in seconds that is encoded as an unsigned 16-bit - integer. The maximum value is 600 seconds (10 minutes). - An endpoint MAY use the following transport parameters: initial_max_data (0x0001): @@ -1637,6 +1629,14 @@ initial_max_bidi_streams (0x0002): MAX_STREAM_ID containing 16 when received by a client or 17 when received by a server. +idle_timeout (0x0003): + +: The idle timeout is a value in seconds that is encoded as an unsigned 16-bit + integer. There is no maximum value besides the maximum encodable value of + 0xFFFF (about 18 hours). If this parameter is abset or zero then the idle + timeout is disabled. In this case, the transport never closes the connection + in response to being idle. + initial_max_uni_streams (0x0008): : The initial maximum unidirectional streams parameter contains the initial @@ -2531,9 +2531,9 @@ source address. ### Idle Timeout -A connection that remains idle for longer than the advertised idle timeout (see -{{transport-parameter-definitions}}) is closed. A connection enters the -draining state when the idle timeout expires. +If the idle timeout is enabled, a connection that remains idle for longer than +the advertised idle timeout (see {{transport-parameter-definitions}}) is closed. +A connection enters the draining state when the idle timeout expires. Each endpoint advertises their own idle timeout to their peer. The idle timeout starts from the last packet received. In order to ensure that initiating new From a8887333bae9c84337578810e5c85a2c30e1901f Mon Sep 17 00:00:00 2001 From: Nick Banks Date: Tue, 18 Sep 2018 10:38:30 -0700 Subject: [PATCH 2/3] Fix typo --- draft-ietf-quic-transport.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 6c96e27281..9c90f5abf3 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -1633,22 +1633,10 @@ idle_timeout (0x0003): : The idle timeout is a value in seconds that is encoded as an unsigned 16-bit integer. There is no maximum value besides the maximum encodable value of - 0xFFFF (about 18 hours). If this parameter is abset or zero then the idle + 0xFFFF (about 18 hours). If this parameter is absent or zero then the idle timeout is disabled. In this case, the transport never closes the connection in response to being idle. -initial_max_uni_streams (0x0008): - -: The initial maximum unidirectional streams parameter contains the initial - maximum number of unidirectional streams the peer may initiate, encoded as an - unsigned 16-bit integer. If this parameter is absent or zero, unidirectional - streams cannot be created until a MAX_STREAM_ID frame is sent. Setting this - parameter is equivalent to sending a MAX_STREAM_ID ({{frame-max-stream-id}}) - immediately after completing the handshake containing the corresponding Stream - ID. For example, a value of 0x05 would be equivalent to receiving a - MAX_STREAM_ID containing 18 when received by a client or 19 when received by a - server. - max_packet_size (0x0005): : The maximum packet size parameter places a limit on the size of packets that @@ -1666,6 +1654,18 @@ ack_delay_exponent (0x0007): value is also used for ACK frames that are sent in Initial and Handshake packets. Values above 20 are invalid. +initial_max_uni_streams (0x0008): + +: The initial maximum unidirectional streams parameter contains the initial + maximum number of unidirectional streams the peer may initiate, encoded as an + unsigned 16-bit integer. If this parameter is absent or zero, unidirectional + streams cannot be created until a MAX_STREAM_ID frame is sent. Setting this + parameter is equivalent to sending a MAX_STREAM_ID ({{frame-max-stream-id}}) + immediately after completing the handshake containing the corresponding Stream + ID. For example, a value of 0x05 would be equivalent to receiving a + MAX_STREAM_ID containing 18 when received by a client or 19 when received by a + server. + disable_migration (0x0009): : The endpoint does not support connection migration ({{migration}}). Peers MUST From 5f5421d8de2e34c6e736b84590d460b8b65d8557 Mon Sep 17 00:00:00 2001 From: Nick Banks Date: Tue, 18 Sep 2018 13:08:55 -0700 Subject: [PATCH 3/3] Address Martins comments --- draft-ietf-quic-transport.md | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 9c90f5abf3..03e798f40b 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -1629,13 +1629,23 @@ initial_max_bidi_streams (0x0002): MAX_STREAM_ID containing 16 when received by a client or 17 when received by a server. +initial_max_uni_streams (0x0008): + +: The initial maximum unidirectional streams parameter contains the initial + maximum number of unidirectional streams the peer may initiate, encoded as an + unsigned 16-bit integer. If this parameter is absent or zero, unidirectional + streams cannot be created until a MAX_STREAM_ID frame is sent. Setting this + parameter is equivalent to sending a MAX_STREAM_ID ({{frame-max-stream-id}}) + immediately after completing the handshake containing the corresponding Stream + ID. For example, a value of 0x05 would be equivalent to receiving a + MAX_STREAM_ID containing 18 when received by a client or 19 when received by a + server. + idle_timeout (0x0003): : The idle timeout is a value in seconds that is encoded as an unsigned 16-bit - integer. There is no maximum value besides the maximum encodable value of - 0xFFFF (about 18 hours). If this parameter is absent or zero then the idle - timeout is disabled. In this case, the transport never closes the connection - in response to being idle. + integer. If this parameter is absent or zero then the idle timeout is + disabled. max_packet_size (0x0005): @@ -1654,18 +1664,6 @@ ack_delay_exponent (0x0007): value is also used for ACK frames that are sent in Initial and Handshake packets. Values above 20 are invalid. -initial_max_uni_streams (0x0008): - -: The initial maximum unidirectional streams parameter contains the initial - maximum number of unidirectional streams the peer may initiate, encoded as an - unsigned 16-bit integer. If this parameter is absent or zero, unidirectional - streams cannot be created until a MAX_STREAM_ID frame is sent. Setting this - parameter is equivalent to sending a MAX_STREAM_ID ({{frame-max-stream-id}}) - immediately after completing the handshake containing the corresponding Stream - ID. For example, a value of 0x05 would be equivalent to receiving a - MAX_STREAM_ID containing 18 when received by a client or 19 when received by a - server. - disable_migration (0x0009): : The endpoint does not support connection migration ({{migration}}). Peers MUST