Re: [quicwg/base-drafts] introduce a max_connection_ids transport parameter (#1998)

janaiyengar <notifications@github.com> Wed, 14 November 2018 11:50 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E8491130DEB for <quic-issues@ietfa.amsl.com>; Wed, 14 Nov 2018 03:50:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.47
X-Spam-Level:
X-Spam-Status: No, score=-8.47 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AkMZqqqCX1Rp for <quic-issues@ietfa.amsl.com>; Wed, 14 Nov 2018 03:50:34 -0800 (PST)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AB2F7130DDE for <quic-issues@ietf.org>; Wed, 14 Nov 2018 03:50:34 -0800 (PST)
Date: Wed, 14 Nov 2018 03:50:33 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1542196233; bh=03SgTCj7hmRjKMaItowWSq723PesJ6rmTfItfWj4Eb8=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=dOwUwqUfJ/adNIzlSfQSjz4XscWNwLVxUFTvt3fySh0Ms+v/GR1ScExYzwO/J8DF2 /QT0tkIZQTbT/AYsJ8CnLLD294fYDl1vMgQvVQJW4GvmwQ10NCyXjb3owcXjukTdS7 evZBWeTGo8eEIXVtlQBO/EKR/Uf8BgtEhhh90LIQ=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab9bd9a44b5b340779df92620dc39558c0cf2d274b92cf000000011803ce0992a169ce16a7e5d6@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1998/review/174818016@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1998@github.com>
References: <quicwg/base-drafts/pull/1998@github.com>
Subject: Re: [quicwg/base-drafts] introduce a max_connection_ids transport parameter (#1998)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5bec0c09a76c9_5ae53fa30ced45c4232472"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/IoF3cQkAqywCL7kjP5DcssvnqEw>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Nov 2018 11:50:37 -0000

janaiyengar commented on this pull request.



>  An endpoint SHOULD ensure that its peer has a sufficient number of available and
-unused connection IDs.  While each endpoint independently chooses how many
-connection IDs to issue, endpoints SHOULD provide and maintain at least eight
-connection IDs.  The endpoint can do this by always supplying a new connection
-ID when a connection ID is retired by its peer or when the endpoint receives a
-packet with a previously unused connection ID.  Endpoints that initiate
-migration and require non-zero-length connection IDs SHOULD provide their peers
-with new connection IDs before migration, or risk the peer closing the
-connection.
+unused connection IDs. Endpoints store received connection IDs for future use.
+They advertise how many unretired connection IDs they are willing to store in
+the transport parameters. An endpoint MUST NOT provide more connection IDs than
+this limit. An endpoint MUST treat receipt of more than this number of
+connection IDs as an error of type CONNECTION_ID_LIMIT_ERROR. If an endpoint has

Why is this error necessary? A peer can simply drop the ones that it can't store.

>  An endpoint SHOULD ensure that its peer has a sufficient number of available and
-unused connection IDs.  While each endpoint independently chooses how many
-connection IDs to issue, endpoints SHOULD provide and maintain at least eight
-connection IDs.  The endpoint can do this by always supplying a new connection
-ID when a connection ID is retired by its peer or when the endpoint receives a
-packet with a previously unused connection ID.  Endpoints that initiate
-migration and require non-zero-length connection IDs SHOULD provide their peers
-with new connection IDs before migration, or risk the peer closing the
-connection.
+unused connection IDs. Endpoints store received connection IDs for future use.
+They advertise how many unretired connection IDs they are willing to store in
+the transport parameters. An endpoint MUST NOT provide more connection IDs than

Suggestion to replace this previous sentence: "An endpoint uses a transport parameter to advertise the maximum number of connection IDs it can store for future use."

>  An endpoint SHOULD ensure that its peer has a sufficient number of available and
-unused connection IDs.  While each endpoint independently chooses how many
-connection IDs to issue, endpoints SHOULD provide and maintain at least eight
-connection IDs.  The endpoint can do this by always supplying a new connection
-ID when a connection ID is retired by its peer or when the endpoint receives a
-packet with a previously unused connection ID.  Endpoints that initiate
-migration and require non-zero-length connection IDs SHOULD provide their peers
-with new connection IDs before migration, or risk the peer closing the
-connection.
+unused connection IDs. Endpoints store received connection IDs for future use.
+They advertise how many unretired connection IDs they are willing to store in
+the transport parameters. An endpoint MUST NOT provide more connection IDs than
+this limit. An endpoint MUST treat receipt of more than this number of
+connection IDs as an error of type CONNECTION_ID_LIMIT_ERROR. If an endpoint has
+provided its peer with the maximum number of connection IDs, the earliest time
+it can provide a new connection ID is when the peer retires a connection ID.

suggestion: "... connection IDs, it can only provide a new connection ID when the peer retires one."

> @@ -3981,6 +3979,12 @@ A client MUST NOT include an original connection ID, a stateless reset token, or
 a preferred address.  A server MUST treat receipt of any of these transport
 parameters as a connection error of type TRANSPORT_PARAMETER_ERROR.
 
+max_connection_ids (0x000e):
+
+: The maximum number of connection IDs that the peer is willing to store.
+  This value includes only connection IDs sent in NEW_CONNECTION_ID frames.

The maximum number of connection IDs that this endpoint can store for future use. These connection IDs are issued by the peer and sent in NEW_CONNECTION_ID frames.

> @@ -4958,6 +4962,10 @@ INVALID_MIGRATION (0xC):
 : A peer has migrated to a different network when the endpoint had disabled
   migration.
 
+CONNECTION_ID_LIMIT_ERROR (0xd):
+
+: A peer received more connection IDs than its advertised limit.

See my comment above

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/1998#pullrequestreview-174818016