From 50b0f35bfe6c9d28e0e91e5f208f65ba5aac34c8 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Tue, 12 Feb 2019 14:48:47 -0800 Subject: [PATCH 1/4] Rework GOAWAY text (again) --- draft-ietf-quic-http.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index 0a206d50cb..87eaee0218 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -1259,21 +1259,21 @@ identified by a QUIC MAX_STREAM_ID frame, and MAY be zero if no requests were processed. Servers SHOULD NOT increase the QUIC MAX_STREAM_ID limit after sending a GOAWAY frame. -Once GOAWAY is sent, the server MUST reject requests sent on streams with an -identifier greater than or equal to the indicated last Stream ID. Clients MUST -NOT send new requests on the connection after receiving GOAWAY, although -requests might already be in transit. A new connection can be established for -new requests. - -If the client has sent requests on streams with a Stream ID greater than or -equal to that indicated in the GOAWAY frame, those requests are considered -rejected ({{request-cancellation}}). Clients SHOULD cancel any requests on -streams above this ID. Servers MAY also reject requests on streams below the -indicated ID if these requests were not processed. +Clients MUST NOT send new requests on the connection after receiving GOAWAY, +although a new connection MAY be established to send additional requests. + +Some requests might already be in transit. If the client has already sent +requests on streams with a Stream ID greater than or equal to that indicated in +the GOAWAY frame, those requests will not be processed and can be retried by the +client. It is RECOMMENDED that the server explicitly reject such requests (see +{{request-cancellation}}) in order to clean up transport state for the affected +streams. The client MAY also cancel requests which will not be processed. Requests on Stream IDs less than the Stream ID in the GOAWAY frame might have been processed; their status cannot be known until they are completed -successfully, reset individually, or the connection terminates. +successfully, reset individually, or the connection terminates. Servers MAY +reject individual requests on streams below the indicated ID if these requests +were not processed. Servers SHOULD send a GOAWAY frame when the closing of a connection is known in advance, even if the advance notice is small, so that the remote peer can From dd455cd6389f2a8f2b3c2cfacd36bf50f5749d6a Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Tue, 12 Feb 2019 15:55:00 -0800 Subject: [PATCH 2/4] Un-although --- draft-ietf-quic-http.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index 87eaee0218..edf6267af7 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -1259,8 +1259,8 @@ identified by a QUIC MAX_STREAM_ID frame, and MAY be zero if no requests were processed. Servers SHOULD NOT increase the QUIC MAX_STREAM_ID limit after sending a GOAWAY frame. -Clients MUST NOT send new requests on the connection after receiving GOAWAY, -although a new connection MAY be established to send additional requests. +Clients MUST NOT send new requests on the connection after receiving GOAWAY; +a new connection MAY be established to send additional requests. Some requests might already be in transit. If the client has already sent requests on streams with a Stream ID greater than or equal to that indicated in From 166b13db1d438eafeed7eb816824fac6021b9813 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Tue, 12 Feb 2019 15:55:50 -0800 Subject: [PATCH 3/4] Restate "complete successfully" --- draft-ietf-quic-http.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index edf6267af7..7f3493c930 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -1270,10 +1270,10 @@ client. It is RECOMMENDED that the server explicitly reject such requests (see streams. The client MAY also cancel requests which will not be processed. Requests on Stream IDs less than the Stream ID in the GOAWAY frame might have -been processed; their status cannot be known until they are completed -successfully, reset individually, or the connection terminates. Servers MAY -reject individual requests on streams below the indicated ID if these requests -were not processed. +been processed; their status cannot be known until a response is received, the +stream is reset individually, or the connection terminates. Servers MAY reject +individual requests on streams below the indicated ID if these requests were not +processed. Servers SHOULD send a GOAWAY frame when the closing of a connection is known in advance, even if the advance notice is small, so that the remote peer can From 78664c4902a294c055b17a660733d5f76309a168 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Mon, 25 Feb 2019 10:24:30 -0800 Subject: [PATCH 4/4] Jana's suggestions --- draft-ietf-quic-http.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index 7f3493c930..2a0c769b8c 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -1264,10 +1264,11 @@ a new connection MAY be established to send additional requests. Some requests might already be in transit. If the client has already sent requests on streams with a Stream ID greater than or equal to that indicated in -the GOAWAY frame, those requests will not be processed and can be retried by the -client. It is RECOMMENDED that the server explicitly reject such requests (see +the GOAWAY frame, those requests will not be processed and MAY be retried by the +client on a different connection. The client MAY cancel these requests. It is +RECOMMENDED that the server explicitly reject such requests (see {{request-cancellation}}) in order to clean up transport state for the affected -streams. The client MAY also cancel requests which will not be processed. +streams. Requests on Stream IDs less than the Stream ID in the GOAWAY frame might have been processed; their status cannot be known until a response is received, the