Subject: [quicwg/base-drafts] Do not reset pto_count on Initial ACKs (#3551)

From: ianswett <[email-masked]>
Date: Sun, 29 Mar 2020 10:27:53 -0700

In order to avoid sending anti-deadlock packets too quickly when the server doesn&#39;t yet have anything to send.

I am tempted to add the pto_count to the PTO equation in the normative section and discuss setting pto_count in it, instead of only trying to describe it with text and only using pto_count in the pseudocode.  Thoughts?

Fixes #3546
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/3551

-- Commit Summary --

  * Do not reset pto_count on Initial ACKs

-- File Changes --

    M draft-ietf-quic-recovery.md (27)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3551.patch
https://github.com/quicwg/base-drafts/pull/3551.diff

-- 
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/3551

---

From: ianswett <[email-masked]>
Date: Sun, 29 Mar 2020 10:30:44 -0700

@ianswett pushed 1 commit.

2c682ab830ff4b2d35be0e1a0acc62108ea3d7c9  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/3dc10be1eba2a005b9e95a5f03c5db48951d5464..2c682ab830ff4b2d35be0e1a0acc62108ea3d7c9

---

From: ianswett <[email-masked]>
Date: Sun, 29 Mar 2020 10:42:58 -0700

f31ae49b91f809ec679775f77f565540bda49a7d  Revert reflow changes to keep them separate

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/2c682ab830ff4b2d35be0e1a0acc62108ea3d7c9..f31ae49b91f809ec679775f77f565540bda49a7d

---

From: ianswett <[email-masked]>
Date: Sun, 29 Mar 2020 10:44:19 -0700

c682269b2ebc0b8d40f97b96e97b69689fd02562  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/f31ae49b91f809ec679775f77f565540bda49a7d..c682269b2ebc0b8d40f97b96e97b69689fd02562

---

From: ianswett <[email-masked]>
Date: Sun, 29 Mar 2020 10:58:49 -0700

50e0259f955a69de2bd7bd88d10ee808a1727432  Set pto_count to 0 when dropping keys

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/c682269b2ebc0b8d40f97b96e97b69689fd02562..50e0259f955a69de2bd7bd88d10ee808a1727432

---

From: ianswett <[email-masked]>
Date: Mon, 30 Mar 2020 07:10:10 -0700

85bb93e1be8612c4e1b70a0506e5793b2f966c6e  Only do this for the client

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/50e0259f955a69de2bd7bd88d10ee808a1727432..85bb93e1be8612c4e1b70a0506e5793b2f966c6e

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 30 Mar 2020 19:33:16 -0700

@kazuho commented on this pull request.

> @@ -1139,8 +1145,9 @@ OnAckReceived(ack, pn_space):
     OnPacketAcked(acked_packet.packet_number, pn_space)
 
   DetectLostPackets(pn_space)
-
-  pto_count = 0
+  // Reset pto_count, unless the client receives an Initial ACK
+  if (endpoint is server || pn_space != Initial)

Shouldn't we better invoke `PeerCompletedAddressValidation()`?

-- 
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/3551#pullrequestreview-384362512

---

From: ianswett <[email-masked]>
Date: Tue, 31 Mar 2020 08:45:30 -0700

96d2a6bde85df0b92864dd8cdc92b1aa35838dfa  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/85bb93e1be8612c4e1b70a0506e5793b2f966c6e..96d2a6bde85df0b92864dd8cdc92b1aa35838dfa

---

From: ianswett <[email-masked]>
Date: Tue, 31 Mar 2020 08:45:51 -0700

@ianswett commented on this pull request.

Done.

-- 
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/3551#discussion_r401019305

---

From: Martin Thomson <[email-masked]>
Date: Tue, 31 Mar 2020 15:07:40 -0700

@martinthomson approved this pull request.

> @@ -1139,8 +1144,9 @@ OnAckReceived(ack, pn_space):
 
   DetectLostPackets(pn_space)
-
-  pto_count = 0
+  // Reset pto_count, unless it's an Initial ACK.
+  if (pn_space != Initial)

```suggestion
  if (pn_space != Initial):
```

> @@ -501,7 +501,12 @@ and prevents a server from sending a 1-RTT packet on a PTO expiration before it
 has the keys to process an acknowledgement.
 
 When a PTO timer expires, the PTO period MUST be set to twice its current
-value. This exponential reduction in the sender's rate is important because
+value. The PTO is set back to the original value upon receiving an

```suggestion
value. The PTO period is set back to the original value upon receiving an
```

-- 
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/3551#pullrequestreview-383484088

---

From: ianswett <[email-masked]>
Date: Tue, 31 Mar 2020 15:30:13 -0700

62544e2403262f194f0074de29171da839581677  Apply suggestions from code review

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/96d2a6bde85df0b92864dd8cdc92b1aa35838dfa..62544e2403262f194f0074de29171da839581677

---

From: ianswett <[email-masked]>
Date: Tue, 31 Mar 2020 15:32:09 -0700

4b278382d1703d6433ae5a1cb2a5ff9628227f27  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3551/files/62544e2403262f194f0074de29171da839581677..4b278382d1703d6433ae5a1cb2a5ff9628227f27

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 31 Mar 2020 16:57:14 -0700

> @@ -501,7 +501,13 @@ and prevents a server from sending a 1-RTT packet on a PTO expiration before it
 
 When a PTO timer expires, the PTO period MUST be set to twice its current
-value. This exponential reduction in the sender's rate is important because
+value. The PTO period is set back to the original value upon receiving an
+acknowledgement for a non-Initial packet. The PTO timer is not decreased when
+the client receives an Initial ACK to ensure the client's anti-deadlock timer

How about changing the text to something like: _The PTO period is set back to the original value when receiving an acknowledgement, if the endpoint knows that the peer has completed address validation. The PTO timer is not decreased while the peer is validating the address, to ensure the endpoint's anti-deadlock timer does not fire..._

I think that is our intent.

-- 
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/3551#pullrequestreview-385182361