Re: [quicwg/base-drafts] Change PTO to be per packet number space (#3066)

Jana Iyengar <notifications@github.com> Thu, 24 October 2019 03:26 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 A6FD312010D for <quic-issues@ietfa.amsl.com>; Wed, 23 Oct 2019 20:26:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 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_HELO_NONE=0.001, SPF_PASS=-0.001] 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 gMEj0rZ1pGNP for <quic-issues@ietfa.amsl.com>; Wed, 23 Oct 2019 20:26:39 -0700 (PDT)
Received: from out-5.smtp.github.com (out-5.smtp.github.com [192.30.252.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B557A1200F6 for <quic-issues@ietf.org>; Wed, 23 Oct 2019 20:26:39 -0700 (PDT)
Received: from github-lowworker-3a0df0f.ac4-iad.github.net (github-lowworker-3a0df0f.ac4-iad.github.net [10.52.25.92]) by smtp.github.com (Postfix) with ESMTP id D7BC1961135 for <quic-issues@ietf.org>; Wed, 23 Oct 2019 20:26:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1571887598; bh=r0e4eb12ebHsX+Wwet2aKkUneM4qRGhlEz0fpiomQ4w=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=AUWzzJ4xFf3LD2/wjz1EupQ1W47dne2uyK0dM2eZ0WeByz9IszkjFXAxLqYY27pIp 71+VF25EyBxl+YS7edmUuq8M4+00keaRvhkGCpDYA53/uUykHGLuGYHX+xLIuUuoL1 86+FmTNd7jqaxRZJrE0aWUdBwmGkdk0AnrvNAlns=
Date: Wed, 23 Oct 2019 20:26:38 -0700
From: Jana Iyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7RUL5RM4FAMCXEY4F3XZGG5EVBNHHB3LP3EA@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3066/review/306299934@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3066@github.com>
References: <quicwg/base-drafts/pull/3066@github.com>
Subject: Re: [quicwg/base-drafts] Change PTO to be per packet number space (#3066)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5db119eec8ce1_3bf63fddbb4cd96096752"; charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
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/-mMGn808p5PwQ3D5yiyD3smDWmo>
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, 24 Oct 2019 03:26:42 -0000

janaiyengar commented on this pull request.



> @@ -471,8 +474,10 @@ the PTOs might be caused by loss of packets or acknowledgements due to severe
 congestion.  The life of a connection that is experiencing consecutive PTOs is
 limited by the endpoint's idle timeout.
 
-A sender computes its PTO timer every time an ack-eliciting packet is sent. A
-sender might choose to optimize this by setting the timer fewer times if it
+A sender computes its PTO timer every time an ack-eliciting packet is sent.
+When ack-eliciting packets are in-flight in multiple packet number spaces,
+the timer MUST be set from the packet number space with the earliest timeout.

```suggestion
the timer MUST be set for the packet number space with the earliest timeout.
```

> @@ -471,8 +474,10 @@ the PTOs might be caused by loss of packets or acknowledgements due to severe
 congestion.  The life of a connection that is experiencing consecutive PTOs is
 limited by the endpoint's idle timeout.
 
-A sender computes its PTO timer every time an ack-eliciting packet is sent. A
-sender might choose to optimize this by setting the timer fewer times if it
+A sender computes its PTO timer every time an ack-eliciting packet is sent.
+When ack-eliciting packets are in-flight in multiple packet number spaces,
+the timer MUST be set from the packet number space with the earliest timeout.
+A sender might choose to optimize this by setting the timer fewer times if it
 knows that more ack-eliciting packets will be sent within a short period of
 time.

Remove this sentence, it's unnecessary.

> @@ -522,9 +525,17 @@ removed from bytes in flight when the Initial and Handshake keys are discarded.
 ### Sending Probe Packets
 
 When a PTO timer expires, a sender MUST send at least one ack-eliciting packet
-as a probe, unless there is no data available to send.  An endpoint MAY send up
-to two full-sized datagrams containing ack-eliciting packets, to avoid an
-expensive consecutive PTO expiration due to a single lost datagram.
+in the packet number space as a probe, unless there is no data available to
+send.  An endpoint MAY send up to two full-sized datagrams containing
+ack-eliciting packets, to avoid an expensive consecutive PTO expiration due
+to a single lost datagram.
+
+In addition to sending data in the packet number space for which the timer
+expired, the sender SHOULD coalesce ack-eliciting packets from all other packet

Is this necessarily "all" spaces?

> @@ -522,9 +525,17 @@ removed from bytes in flight when the Initial and Handshake keys are discarded.
 ### Sending Probe Packets
 
 When a PTO timer expires, a sender MUST send at least one ack-eliciting packet
-as a probe, unless there is no data available to send.  An endpoint MAY send up
-to two full-sized datagrams containing ack-eliciting packets, to avoid an
-expensive consecutive PTO expiration due to a single lost datagram.
+in the packet number space as a probe, unless there is no data available to
+send.  An endpoint MAY send up to two full-sized datagrams containing
+ack-eliciting packets, to avoid an expensive consecutive PTO expiration due
+to a single lost datagram.
+
+In addition to sending data in the packet number space for which the timer
+expired, the sender SHOULD coalesce ack-eliciting packets from all other packet
+number spaces with in-flight data if sending coalesced packets is supported.
+If implementations do not send coalesced packets upon timeout when multiple
+packet number spaces have in-flight data, then they MUST only send a single

Suggestion: "If an endpoint has data in multiple packet number spaces in flight and is unable to send coalesced packet when a PTO expires, it MUST send only a single datagram on PTO expiration."

-- 
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/3066#pullrequestreview-306299934