Re: [quicwg/base-drafts] Negative Connection ID Sequence Number (#1484)

Martin Thomson <> Tue, 26 June 2018 23:43 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A15F8130E6E for <>; Tue, 26 Jun 2018 16:43:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Status: No, score=-8.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=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 cMPHr6St0CwZ for <>; Tue, 26 Jun 2018 16:43:19 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 43557130E6C for <>; Tue, 26 Jun 2018 16:43:19 -0700 (PDT)
Date: Tue, 26 Jun 2018 16:43:18 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1530056598; bh=5hQxM0Io1Qa4/FASzW5Ik3SliI7JucDtdMgS1LfSTJA=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=x3rNgZBCOERBmuWaJqe+u4YBZSM2Kpdeq53+0ISciuPf4JhMROGKgX81z/R3sjIoo sH+0ko0pWr0tgRXEnApvwRwm4r/PVD7sARTq12/4meIeJYPfwsRkdGlSSVxStBPgxp g9T2S+/IwnzcMnZML04t+kvpHCAJqHKqnZqfPHEU=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/1484/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Negative Connection ID Sequence Number (#1484)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b32cf965c98d_201c3f7f9a414f845775f"; 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.26
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, 26 Jun 2018 23:43:22 -0000

Conveniently, varints can use int64_t because they only use the lower 62 bits.  Also, uint64_t(0)-1 underflows reliably to UINT64_MAX if you want to keep your variables unsigned.

However, I think that the -1 recommendation is wrong, particularly in light of the changes to Retry and the server's preferred address transport parameter.  We should rephrase and avoid making any recommendation about how to handle these.

Those same things makes me very reluctant to recommend starting at 1 or 2, but if we don't require a contiguous sequence of connection IDs, then maybe some implementations can skip a few without consequence.  We probably shouldn't require contiguous sequence numbers anyway because of the potential for some endpoints to consume values that aren't seen and then they might decide not to provision their peer with matching connection IDs.  The frame isn't that small, after all.

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