Re: [quicwg/base-drafts] Don't arm the handshake timer if there's no data (#2590)

ianswett <notifications@github.com> Fri, 05 April 2019 14:50 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 06FE612045A for <quic-issues@ietfa.amsl.com>; Fri, 5 Apr 2019 07:50:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.001
X-Spam-Level:
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: 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 zD7HH6rhQwPP for <quic-issues@ietfa.amsl.com>; Fri, 5 Apr 2019 07:50:54 -0700 (PDT)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1BABD120459 for <quic-issues@ietf.org>; Fri, 5 Apr 2019 07:50:54 -0700 (PDT)
Date: Fri, 05 Apr 2019 07:50:53 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1554475853; bh=j556XOOxax9s4NToxEWeRvWzILTk8DZpNnh9kbZclng=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=iYYu+8Q9pwG4uX0zc7JmCHBzErLmo5wqjg+JnTf3drM4fnpKR8t+yXt7FiuAgeJJY AnfWZ9N6VbVRiWDET2Jb6Ml8l8mvhfGDsNKtVzZV+Qb4APvc8ZA8/1nk7hTd9nsHBw IggZztwV82ufsCU8Sfrw868TX6fJz5d733Ohm0jU=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab476102b0626a9d678628e088716c8d7af1c6db4392cf0000000118bf2d4d92a169ce199da23e@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2590/review/223286807@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2590@github.com>
References: <quicwg/base-drafts/pull/2590@github.com>
Subject: Re: [quicwg/base-drafts] Don't arm the handshake timer if there's no data (#2590)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5ca76b4d5c0e3_56043fb8ffed45c02462e8"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
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/qT3bMuRcODRyQFJtQwCqEi8gpz0>
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: Fri, 05 Apr 2019 14:50:56 -0000

ianswett commented on this pull request.

Thanks, I think this is closer.  I can also try to pull in all the changes from the other PR into this one if it makes this easier?

> @@ -458,11 +458,11 @@ sent, then no alarm should be armed until data has been received from the
 client.
 
 Because the server could be blocked until more packets are received, the client
-MUST start the crypto retransmission timer even if there is no unacknowledged
-CRYPTO data.  If the timer expires and the client has no CRYPTO data to
-retransmit and does not have Handshake keys, it SHOULD send an Initial packet in
-a UDP datagram of at least 1200 bytes.  If the client has Handshake keys, it
-SHOULD send a Handshake packet.
+MUST start the crypto retransmission timer until it has 1RTT keys, even if there

It's not just timeout(ie: it needs to be set after an ACK is received), but I'll try to clarify.

line 448: The definition of crypto packet is that it has a CRYPTO frame in it, so it's always ack-eliciting.

Retransmitting the crypto data would naturally update the timer(see previous sentence) and there would be unacknowledged crypto data in that case, so I'm not sure your extra clause is clarifying or potentially confusing?

> @@ -1114,7 +1114,8 @@ SetLossDetectionTimer():
     loss_detection_timer.update(loss_time)
     return
 
-  if (crypto packets are in flight):
+  if (crypto packets are in flight &&
+      crypto data to send):

That's in the the other PR: #2281 

> @@ -1151,7 +1152,8 @@ OnLossDetectionTimeout():
     DetectLostPackets(pn_space)
   // Retransmit crypto data if no packets were lost
   // and there are still crypto packets in flight.
-  else if (crypto packets are in flight):
+  else if (crypto packets are in flight &&
+           crypto data to send):
     // Crypto retransmission timeout.
     RetransmitUnackedCryptoData()
     crypto_count++

Also in the other PR.

-- 
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/2590#pullrequestreview-223286807