Subject: [quicwg/base-drafts] Clarify ACK Delay and reference host-delay (#3971)

From: ianswett <[email-masked]>
Date: Wed, 29 Jul 2020 05:58:18 -0700

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

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

-- Commit Summary --

  * Clarify ACK Delay and reference host-delay

-- File Changes --

    M draft-ietf-quic-transport.md (19)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3971.patch
https://github.com/quicwg/base-drafts/pull/3971.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/3971

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 29 Jul 2020 06:01:48 -0700

@kazuho approved this pull request.

@ianswett Thanks a lot! LGTM.

-- 
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/3971#pullrequestreview-457496421

---

From: Martin Thomson <[email-masked]>
Date: Wed, 29 Jul 2020 19:07:06 -0700

@martinthomson commented on this pull request.

> +: A variable-length integer representing the intentional delay in microseconds
+  between when the largest acknowledged packet, as indicated in the Largest
+  Acknowledged field, was received, and when the ACK frame was sent;
+  see {{host-delay}}.  The value of the ACK Delay field is scaled by

Including the encoding/unit details in the description makes this a very hard sentence to swallow.  I can only think of ways to make this longer though...

This value represents the length of the delay between when the largest acknowledged packet, as indicated in the Largest Acknowledged field, was received, and when the ACK frame was sent; see {{host-delay}}.  ACK Delay is encoded as a variable-length integer with a value that is derived by dividing the delay in microseconds by 2 to the power of the value of the ack_delay_exponent transport parameter set by the sender of the ACK frame; see {{transport-parameter-definitions}}.  To decode the value, the encoded variable-length integer value is multiplied by 2 to the power of the ack_delay_exponent transport parameter to obtain a value in microseconds.  Scaling in this fashion allows ...

-- 
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/3971#pullrequestreview-458022836

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 06:01:09 -0700

@janaiyengar commented on this pull request.

There's a rewording of this in flight in Lars's PR: https://github.com/quicwg/base-drafts/pull/3946. @martinthomson, take a look there to see if that's better. This para needs some work.

-- 
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/3971#discussion_r462975778

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 06:03:09 -0700

@janaiyengar approved this pull request.

-- 
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/3971#pullrequestreview-458377827

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 07:14:46 -0700

@ianswett commented on this pull request.

I flipped the ordering of this sentence, but I agree it was already too long.  I'm going to work off of @martinthomson suggestion and move the units to a separate sentence.

-- 
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/3971#discussion_r463027359

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 08:05:22 -0700

@ianswett pushed 1 commit.

fc3f1b9feec42cf8db82bebd50a0ae3d95a9fd12  Another reword

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3971/files/0394072db1cb7b198143ae1cc7c1b25d14a59124..fc3f1b9feec42cf8db82bebd50a0ae3d95a9fd12

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 08:07:41 -0700

I tried to reword, thought in the end I'm not sure I ended up using @martinthomson text or not.

Removing microseconds from the first sentence makes this clearer to me, since the ACK Delay field is definitely not in microseconds, the decoded acknowledgement delay is.

-- 
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/3971#discussion_r463066284

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 08:24:46 -0700

@ianswett: You're going to conflict with changes in #3946, which rephrases this as well.

-- 
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/3971#discussion_r463078609

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 08:40:04 -0700

Agreed, I can fix the conflicts if this lands second.  I'm more concerned with getting this text correct.

-- 
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/3971#discussion_r463089018

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 08:58:39 -0700

> +: A variable-length integer encoding the intentional delay between when the
+  largest acknowledged packet, as indicated in the Largest Acknowledged field,
+  was received, and when the ACK frame was sent; see {{host-delay}}.
+  The acknowledgement delay in microseconds is the value of the ACK Delay
+  field multiplied by 2 to the power of the ack_delay_exponent transport
+  parameter sent by the sender of the ACK frame;
+  see {{transport-parameter-definitions}}.  Scaling in this fashion allows for
+  a larger range of values with a shorter encoding at the cost of lower
+  resolution.  Because the receiver doesn't use the ACK Delay for Initial and
+  Handshake packets, a sender SHOULD send a value of 0.

```suggestion
: A variable-length integer encoding the acknowledgement delay in
  microseconds; see {{host-delay}}. It is decoded by multiplying the
  value in the field by 2 to the power of the ack_delay_exponent transport
  parameter sent by the sender of the ACK frame; see
  {{transport-parameter-definitions}}.  This encoding allows for a large
  range of values, although it sacrifices some resolution.
  
  Since the acknowledgement delay is not used for Initial and Handshake
  packets, the ACK Delay field in acknowledgements for those packet types
  SHOULD be set to 0.
```

Also, I would move this last paragraph up to the host-delay section.

-- 
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/3971#pullrequestreview-458540916

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 09:00:11 -0700

The description of the delay is already in the host delay section. We can fix that section if necessary, but let's not repeat the same text down here.

-- 
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/3971#discussion_r463103222

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 09:02:06 -0700

Ok, I've done a full rework of the paragraph.

-- 
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/3971#discussion_r463104422

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 09:02:45 -0700

Let's really fix this para then

-- 
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/3971#pullrequestreview-458544497

---

From: Martin Thomson <[email-masked]>
Date: Thu, 30 Jul 2020 09:05:45 -0700

That last bit won't format correctly.  You need a ': ' at the start of the line, or maybe we could move it elsewhere.

-- 
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/3971#discussion_r463106674

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 09:08:11 -0700

I think it can be moved up to the host delay section.

-- 
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/3971#discussion_r463108227

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 11:57:28 -0700

Agreed, I'll move the last bit down to the host delay section.

-- 
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/3971#discussion_r463205674

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 11:57:41 -0700

20a2485a5fb1afae3f81b52341ba85f9213a81ab  Update draft-ietf-quic-transport.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3971/files/fc3f1b9feec42cf8db82bebd50a0ae3d95a9fd12..20a2485a5fb1afae3f81b52341ba85f9213a81ab

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 11:59:59 -0700

ffd34e4e03747888bd0c11ac40e1aa4793e9056e  Update draft-ietf-quic-transport.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3971/files/20a2485a5fb1afae3f81b52341ba85f9213a81ab..ffd34e4e03747888bd0c11ac40e1aa4793e9056e

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 12:03:24 -0700

bfa7d1bd0925cf953ce75e94717fb338bd5d751d  Merge branch 'master' into ianswett-ack-delay-host-delay

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

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 12:04:47 -0700

Thanks, I kept most of the existing sentence about size vs resolution, but otherwise took your suggestion @janaiyengar 

-- 
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/3971#discussion_r463209354

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 30 Jul 2020 13:33:35 -0700

Nit: larger and lower imply a comparison. Otherwise, LGTM.

> +  {{transport-parameter-definitions}}. Scaling in this way allows for a
+  large range of values with a shorter encoding at the cost of lower
+  resolution.

```suggestion
  {{transport-parameter-definitions}}. Compared to simply expressing
  the delay as an integer, this encoding allows for a larger range of
  values within the same number of bytes, at the cost of lower resolution.
```

-- 
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/3971#pullrequestreview-458734213

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 13:41:55 -0700

eb04586372b69a46f5547716069c944e2e29fc7e  Update draft-ietf-quic-transport.md

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

---

From: ianswett <[email-masked]>
Date: Thu, 30 Jul 2020 13:49:31 -0700

Merged #3971 into master.

-- 
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/3971#event-3605742055