From 2e306e30c55c8a21b1a6818c670fc52c529677cf Mon Sep 17 00:00:00 2001 From: Martin Duke Date: Thu, 19 Mar 2020 15:41:22 -0700 Subject: [PATCH 1/2] Added more test to NCID section --- draft-ietf-quic-transport.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 7d661ed9e1..9dfaccdd22 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -5571,6 +5571,12 @@ Retire Prior To field MUST be less than or equal to the Sequence Number field. Receiving a value greater than the Sequence Number MUST be treated as a connection error of type FRAME_ENCODING_ERROR. +Endpoints that receive a NEW_CONNECTION_ID frame SHOULD NOT retire connection +IDs with a sequence number equal to or greater than the Retire Prior To field +solely as a result of receiving the frame. If the peer is trying to maintain a +stock of provided CIDs, this can result in an infinite loop of +NEW_CONNECTION_ID and RETIRE_CONNECTION_ID frames. + Once a sender indicates a Retire Prior To value, smaller values sent in subsequent NEW_CONNECTION_ID frames have no effect. A receiver MUST ignore any Retire Prior To fields that do not increase the largest received Retire Prior To @@ -5579,8 +5585,8 @@ value. An endpoint that receives a NEW_CONNECTION_ID frame with a sequence number smaller than the Retire Prior To field of a previously received NEW_CONNECTION_ID frame MUST immediately send a corresponding -RETIRE_CONNECTION_ID frame that retires the newly received connection ID. - +RETIRE_CONNECTION_ID frame that retires the newly received connection ID, +unless it has already done so for that sequence number. ## RETIRE_CONNECTION_ID Frame {#frame-retire-connection-id} From 22c7e1245c0889e7c43944e8c4dc1482175927de Mon Sep 17 00:00:00 2001 From: Martin Duke Date: Thu, 19 Mar 2020 19:23:13 -0700 Subject: [PATCH 2/2] take all the suggestions --- draft-ietf-quic-transport.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 9dfaccdd22..19611bc8fe 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -5571,12 +5571,6 @@ Retire Prior To field MUST be less than or equal to the Sequence Number field. Receiving a value greater than the Sequence Number MUST be treated as a connection error of type FRAME_ENCODING_ERROR. -Endpoints that receive a NEW_CONNECTION_ID frame SHOULD NOT retire connection -IDs with a sequence number equal to or greater than the Retire Prior To field -solely as a result of receiving the frame. If the peer is trying to maintain a -stock of provided CIDs, this can result in an infinite loop of -NEW_CONNECTION_ID and RETIRE_CONNECTION_ID frames. - Once a sender indicates a Retire Prior To value, smaller values sent in subsequent NEW_CONNECTION_ID frames have no effect. A receiver MUST ignore any Retire Prior To fields that do not increase the largest received Retire Prior To @@ -5584,9 +5578,9 @@ value. An endpoint that receives a NEW_CONNECTION_ID frame with a sequence number smaller than the Retire Prior To field of a previously received -NEW_CONNECTION_ID frame MUST immediately send a corresponding -RETIRE_CONNECTION_ID frame that retires the newly received connection ID, -unless it has already done so for that sequence number. +NEW_CONNECTION_ID frame MUST send a corresponding RETIRE_CONNECTION_ID frame +that retires the newly received connection ID, unless it has already done so +for that sequence number. ## RETIRE_CONNECTION_ID Frame {#frame-retire-connection-id}