Re: [quicwg/base-drafts] Describe PMTU probing that includes source connection ID for routing … (#2402)

Mike Bishop <> Thu, 07 February 2019 18:44 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5575B129A87 for <>; Thu, 7 Feb 2019 10:44:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.001
X-Spam-Status: No, score=-8.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 4gQtly25p7sT for <>; Thu, 7 Feb 2019 10:44:02 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7DFD0124C04 for <>; Thu, 7 Feb 2019 10:44:02 -0800 (PST)
Date: Thu, 07 Feb 2019 10:44:01 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1549565041; bh=FV0GhS/YT2CsLjwQWoac9Rb6LnRUoBHBdWNxyZ40pII=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Y4KEKjlGwvc7wXZpL2MN8Nes5KVNTw78JGiVrzQjSNFlsqw/8g9701uhgwHt/3kWQ XQAcQZO1FtnQYDxbEI+KK1h+5cuA6btTMVw7gM5PQh7mlnWjXJ6t6ZKDcSTUPSROBE S2F2whDndFglRJlyKgXZErBZgS9wBUGh59+/Pi/o=
From: Mike Bishop <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2402/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Describe PMTU probing that includes source connection ID for routing … (#2402)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c5c7c716e8b9_383f3fc0f4ad45b857268"; 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
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: Thu, 07 Feb 2019 18:44:04 -0000

MikeBishop approved this pull request.

Looks good.  To @mikkelfj's concern, that's covered by the requirement that you MUST process subsequent packets in the datagram, even if you choose to drop the first one.  An implementation that drops the entire datagram because it starts with a Handshake packet would be violating that requirement (and therefore should expect interop problems).

> @@ -3274,6 +3275,22 @@ The considerations for processing ICMP messages in the previous section also
 apply if these messages are used by DPLPMTUD.
+### PMTU Probes Containing Source Connection ID {#pmtu-probes-src-cid}
+Endpoints that rely on the destination connection ID for routing QUIC packets
+are likely to require that connection ID included in PMTU probe packets in order
+to route resulting ICMP messages ({{icmp-pmtud}}) back to the correct endpoints.
+Only long header packets ({{long-header}}) contain source connection IDs, but
+long header packets will not be acknowledged once the connection has been
+established.  One way to construct a PMTU probe is to coalesce (see
+{{packet-coalesce}}) a Handshake packet ({{packet-handshake}}) with a short
+header packet in a single UDP datagram.  If the UDP datagram reaches the
+endpoint, the short header packet will be acknowledged.  If the UDP datagram
+elicits an ICMP message, that message may contain the source connection ID

The reality seems a little stronger than "may"; perhaps "will likely"?

> @@ -2670,9 +2670,10 @@ complete.  Though the values of some fields in the packet header might be
 redundant, no fields are omitted.  The receiver of coalesced QUIC packets MUST
 individually process each QUIC packet and separately acknowledge them, as if
 they were received as the payload of different UDP datagrams.  For example, if
-decryption fails (because the keys are not available or any other reason), the
-the receiver MAY either discard or buffer the packet for later processing and
-MUST attempt to process the remaining packets.
+decryption fails (because the keys are not available, the UDP datagram is a PMTU
+probe (see {{pmtu-probes-src-cid}}), or any other reason), the the receiver MAY

I'm not sure this needs to be called out separately.  If Handshake keys have been dropped, the keys won't be available and you've already covered this.

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