Subject: [quicwg/base-drafts] What resets idle timeout? (#2149)

From: ekr <[email-masked]>
Date: Thu, 13 Dec 2018 11:32:35 -0800

```
Each endpoint advertises its own idle timeout to its peer. The idle timeout
starts from the last packet received.  In order to ensure that initiating new
activity postpones an idle timeout, an endpoint restarts this timer when sending
a packet.  An endpoint does not postpone the idle timeout if another packet has
been sent containing frames other than ACK or PADDING, and that other packet has
not been acknowledged or declared lost.  Packets that contain only ACK or
PADDING frames are not acknowledged until an endpoint has other frames to send,
so they could prevent the timeout from being refreshed.
```

I find this pretty hard to read, but assuming I *am* reading it corectly,
it basically says that if you read any packet or write any packet that
has a frame other than ACK or padding, then you reset the timer. The text
about "other packet has not been acknowledged or lost" doesn't make sense
unless you have some very complicated timer scheme, because the packet
won't be acknowledge or lost until after it is sent, at which point I
have already reset the timer. 

-- 
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/issues/2149

---

From: Martin Thomson <[email-masked]>
Date: Thu, 13 Dec 2018 15:51:30 -0800

Yeah, this is opaque.

I think that the logic is something like:

* when receiving a packet, restart the idle timer
* when sending an ACK-eliciting packet. if you haven't sent other ACK-eliciting packets since the idle timer was started, restart the idle timer

That is, if you send 10 packets, only the first of those restarts the timer.

This clearly needs to be reworded.

-- 
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/issues/2149#issuecomment-447163343

---

From: ianswett <[email-masked]>
Date: Wed, 19 Dec 2018 09:46:03 -0800

I'd suggest one change to the second bullet, Martin.

"when sending an ACK-eliciting packet. if you haven't sent other ACK-eliciting packets since the idle timer was restarted due to a received packet, restart the idle timer"

And yes, that text is not clear.

-- 
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/issues/2149#issuecomment-448684002