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

martinduke <> Tue, 07 April 2020 23:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E798F3A0818 for <>; Tue, 7 Apr 2020 16:21:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.863
X-Spam-Status: No, score=-1.863 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.168, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=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 gmHfMI39DtBF for <>; Tue, 7 Apr 2020 16:21:43 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7CCBB3A0811 for <>; Tue, 7 Apr 2020 16:21:43 -0700 (PDT)
Date: Tue, 07 Apr 2020 16:21:42 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1586301702; bh=tUie8qXt9VxxT0OqUDILUssLaQLjv2q1uI30bJU1cww=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=PJpi4qJTMlJroLw6ZLtEOXX871Vl/z8+XKNZfqGzQ9r8pIawVOY/mr/sQR5MkTys4 sMsLzpDxC03IDhZSgoi0WXsu/IU9ryAQpiknKXF2sDiv3oedTg+TqMB82NU0Tf93az bKiUKfE8Gh8EJazg64vWZOm+4gpoO0S2j1RzT1VM=
From: martinduke <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3547/>
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_5e8d0b067ceb3_94a3f9037ccd95c704b2"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinduke
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, 07 Apr 2020 23:21:45 -0000

I'm reluctant to blow away the whole PR with brand new text, so in this comment I will propose four entirely new paragraphs that IMO says what needs to be said. Either the current PR, Martin's revision, or this proposal could serve as the basis of the eventual change:

If a peer sends large numbers of NEW_CONNECTION_ID frames that increase Retire
Prior To, and/or acks of packets that contain RETIRE_CONNECTION_ID are lost, the
state required at the RETIRE_CONNECTION_ID sender can grow without regard to its
active_connection_id_limit. Therefore, endpoints SHOULD take steps to bound the
state associated with needed RETIRE_CONNECTION_ID frames while ensuring that it
eventually transmits all required RETIRE_CONNECTION_ID frames.

For example, it might limit voluntarily retirement of sequence numbers if it has
not received enough acknowledgments of packets containing previous retirements.
It might also restrict the RETIRE_CONNECTION_ID frames in flight to a single
packet in order to simplify tracking of what is in flight, what needs retransmission,
and what has been acknowledged.

An endpoint MAY treat having too many connection IDs to retire as a connection
error of type CONNECTION_ID_LIMIT_ERROR. The threshold for this error SHOULD
be at least twice the endpoint's advertised active_connection_id_limit.

Endpoints SHOULD NOT issue updates of the Retire Prior To field prior to
receiving all of the RETIRE_CONNECTION_ID frames for the previous update to
Retire Prior To.


If people much prefer this or MT's revision, I'll update the PR accordingly.

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