Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

loss detection timer description could be simplified by definining a timer mode #3151

Closed
marten-seemann opened this issue Oct 25, 2019 · 8 comments
Assignees
Labels
-recovery editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@marten-seemann
Copy link
Contributor

In SetLossDetectionTimer we're setting the loss detection timer in order to:

  • trigger an early retransmit (if we received gaps in the acknowledged packets) or
  • trigger a PTO (if we only have a tail outstanding)

When the timer fires, in OnLossDetectionTimeout, we first need to figure out why we set the timer, and trigger an early retransmit or a PTO based on that.

I think the code would be easier if we save a "timer mode" enum { EARLY_RETRANSMIT, PTO } in SetLossDetectionTimer, and take action based on that mode in OnLossDetectionTimeout.

@ianswett, @janaiyengar What do you think?

@ianswett
Copy link
Contributor

That could work, but I'd call it { LOSS_DETECTION, PTO }

Any interest in writing up a PR so we can see what the change you have in mind looks like?

ianswett added a commit that referenced this issue Nov 1, 2019
After reading this, it feels a bit duplicative to whether a loss_time is present to me, but I'm writing a PR so people can take a look.

Fixes #3151
@ianswett
Copy link
Contributor

ianswett commented Nov 1, 2019

I wrote up #3182, but I don't think it's an improvement. Maybe it wasn't what you had in mind, @marten-seemann ?

@marten-seemann
Copy link
Contributor Author

@ianswett I have a half-baked PR on my disk, but I still need to figure out the details of how this interacts the amplification limit. It seems like on the client side, there's a third timer mode (send anything to unblock the server from the 3x limit).
I'll put some more work into my PR and post it by early next week.

@ianswett
Copy link
Contributor

ianswett commented Nov 2, 2019

One other idea would be to add a second timer, so you'd have a loss_timer and pto_timer. I was strongly against this when we had handshake retransmissions and TLP retransmissions and RTO retransmissions, but now that we're down to PTO, I like the idea better. I think that might be simpler to understand than an enum, and you could split the pseudocode into two methods.

@janaiyengar
Copy link
Contributor

janaiyengar commented Nov 2, 2019 via email

@mnot mnot added the design An issue that affects the design of the protocol; resolution requires consensus. label Nov 25, 2019
@mnot mnot added this to Design Issues in Late Stage Processing Nov 25, 2019
@ianswett
Copy link
Contributor

@mnot All changes discussed are in the pseudocode, so I believe this will be editorial.

@larseggert larseggert added editorial An issue that does not affect the design of the protocol; does not require consensus. and removed design An issue that affects the design of the protocol; resolution requires consensus. labels Feb 4, 2020
@project-bot project-bot bot moved this from Design Issues to Editorial Issues in Late Stage Processing Feb 4, 2020
@larseggert
Copy link
Member

Changed per discussion in ZRH

@ianswett
Copy link
Contributor

I don't think we should do this anymore, and I have no intent to fix it.

Late Stage Processing automation moved this from Editorial Issues to Text Incorporated Mar 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-recovery editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

5 participants