Re: [quicwg/base-drafts] Limit RCID state (#3547)

Martin Thomson <> Tue, 31 March 2020 05:00 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C70DA3A1B42 for <>; Mon, 30 Mar 2020 22:00:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.473
X-Spam-Status: No, score=-0.473 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_28=0.726, HTML_MESSAGE=0.001, HTML_OBFUSCATE_05_10=0.001, MAILING_LIST_MULTI=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id JdSeYktBxXkM for <>; Mon, 30 Mar 2020 22:00:18 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8F5243A1B34 for <>; Mon, 30 Mar 2020 22:00:17 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 529C16A0440 for <>; Mon, 30 Mar 2020 22:00:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1585630816; bh=BC6Yo2/9TDoAoQnzZy1T7txsUhydDFipWvld/L0S/JE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=V3znqBzktxvMKhOjGgdUxqhAXh2hIoYLuPe0XA8XP63VEIPtnw9KkDLQV0cX+XFSu wIwY1Z1iSwfIEOREZjs7bRedhi3JoVWiHM4qo/nAO7IJjKrFJ3WYWxKjjcDQAj1NRB rBIcIqC/pFKGoIcm14U5VZKIeoRNnZu7Jjoeymqs=
Date: Mon, 30 Mar 2020 22:00:16 -0700
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3547/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Limit RCID state (#3547)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e82ce6043e8b_196e3fce172cd95c185062"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 31 Mar 2020 05:00:20 -0000

@martinthomson commented on this pull request.

> @@ -1069,6 +1069,15 @@ to cease using the connection IDs when requested can result in connection
 failures, as the issuing endpoint might be unable to continue using the
 connection IDs with the active connection.
+An endpoint SHOULD limit the number of outstanding RETIRE_CONNECTION_ID frames
+to bound the necessary state. In order to allow a peer to retire all previously
+issued connection IDs, the limit on the number of outstanding
+RETIRE_CONNECTION_IDs SHOULD be at least the active_connection_id_limit. An

I see what you mean by the CID<sub>2</sub> example, but my counter would be that you wouldn't retire that connection ID because you were still busy working through the previous set of retirements.  (This assumes that you don't or can't start to retire CID<sub>2</sub> before being told to retire the others.)

The problem with discretionary retirement is that it won't be contiguous in the same way that Retire Prior To has to be, so you potentially have a patchwork of connection IDs that are variously valid, in use, unused, or retired.  You can use run-length encoding to reduce state somewhat, but there is no easy way to compress this state commitment.

But at least you can avoid the costs of retiring stuff that you are forced to retire.  That's all I was worried about.  Costs of discretionary activities are something people just have to factor in.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: