Re: [quicwg/base-drafts] Request to Retire Locally Issued CIDs (#2769)

Mike Bishop <notifications@github.com> Thu, 06 June 2019 20:19 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 51D9C1200B9 for <quic-issues@ietfa.amsl.com>; Thu, 6 Jun 2019 13:19:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Level:
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_HELO_NONE=0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 HZf-wb8AV84C for <quic-issues@ietfa.amsl.com>; Thu, 6 Jun 2019 13:19:10 -0700 (PDT)
Received: from out-3.smtp.github.com (out-3.smtp.github.com [192.30.252.194]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 292AC12009C for <quic-issues@ietf.org>; Thu, 6 Jun 2019 13:19:10 -0700 (PDT)
Date: Thu, 06 Jun 2019 13:19:09 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1559852349; bh=XS7vBLv+QrYimbGqqFFheAdft6PsRdNF3Sh2vzQkYO0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=ZdwZ/Iiw3Pe0IzzHQIJYMt5au/dOSj2Ay6JAw6gr7JvU0wSxcv1RdeSG6zp+PVZjY 5nBEU9mSjsmvT+elSFVREuvJNfkX8bfL4vfNoAN7akmNptoWXfmKtF44ohhTmpbvzl n3wH5h3q7TGoyKXlHGKI8iBunO4/hq1rJbIe52jA=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK4YHWCE53WOYEHHYSF3A2T33EVBNHHBV45H2U@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2769/review/246789355@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2769@github.com>
References: <quicwg/base-drafts/pull/2769@github.com>
Subject: Re: [quicwg/base-drafts] Request to Retire Locally Issued CIDs (#2769)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cf9753d1060f_6c1e3fc5f10cd964193969"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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/tvIovbH4UK7XM6M4DBdo42BNpvc>
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: Thu, 06 Jun 2019 20:19:12 -0000

MikeBishop commented on this pull request.

This is straddling the line between "request" (5037) and "require" (998).  Pick one.  Given that you're going to kill the connection if they don't comply, "request" doesn't seem like a strong enough statement here.  But the issuer only MAY kill the connection if the peer doesn't comply, so....  🤷‍♀️

If connection destruction is the intended result, go stronger.  You SHOULD set the timer and blow up the connection if it expires; you MUST retire the CIDs upon receipt of an increased RPT field.

> @@ -994,6 +994,14 @@ packets sent from only one local address.  An endpoint that migrates away from a
 local address SHOULD retire all connection IDs used on that address once it no
 longer plans to use that address.
 
+The endpoint can explicitly request its peer to retire connection IDs by sending
+a NEW_CONNECTION_ID frame that contains a Retire Prior To field.  The peer is
+required to retire these connection IDs in a timely manner.  On receipt of the
+acknowledgement for the packet that contained the NEW_CONNECTION_ID frame, the
+endpoint may start a 3 PTO timer, which on expiring may close the connection
+with a PROTOCOL_VIOLATION error if all the connection IDs were not retired as
+requested.
+

Mostly because "change immediately" is a difficult requirement to police.  Couching it in more concrete terms -- error on use of this CID in a packet with a higher packet number than the one which carried the ACK -- makes it easier to police in theory, but highlights what different parts of the system have to be coordinated to do it in practice.

Frankly, I'd even be okay with no longer recognizing those CIDs 3xPTO after sending the frame.  Fewer moving parts, easy to understand, but a small risk of stateless reset if the packet is severely delayed.

-- 
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/2769#pullrequestreview-246789355