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

Reset spin bit when probing #3802

Closed
MikeBishop opened this issue Jun 30, 2020 · 1 comment · Fixed by #3984
Closed

Reset spin bit when probing #3802

MikeBishop opened this issue Jun 30, 2020 · 1 comment · Fixed by #3984
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@MikeBishop
Copy link
Contributor

This is likely a case of "we know what we meant," but....

Section 17.3.1 says that the spin bit can be enabled/disabled on a per-connection or per-CID basis, and that:

An endpoint resets its spin value to zero when sending the first packet of a given connection with a new connection ID. This reduces the risk that transient spin bit state can be used to link flows across connection migration or ID change.

However, a literal reading of this suggests that a client which sets the spin bit on a per-connection basis will revert the spin bit on the main path to zero whenever it uses a new CID to probe on an alternate path. It also has implications for an implementation that uses many active CIDs at once.

One resolution is that the current state of the spin bit is maintained on a per-CID basis, and that the CID begins at zero for each CID. However, for the client using many CIDs at once, that then begs the question of which of the peer's CIDs are being reflected back to it.

I think that what we actually mean here is two-fold:

  • The current state of the spin bit is maintained on a per-path basis, and is initialized to zero for each path.
  • The current state of the spin bit is reset to zero whenever the CID being used on a path changes, no matter how frequently that is.
@larseggert larseggert added this to Triage in Late Stage Processing via automation Jul 1, 2020
@larseggert
Copy link
Member

I think what you summarize in the bullets is indeed what was intended. @britram?

@janaiyengar janaiyengar added the editorial An issue that does not affect the design of the protocol; does not require consensus. label Jul 7, 2020
@project-bot project-bot bot moved this from Triage to Editorial Issues in Late Stage Processing Jul 7, 2020
martinthomson added a commit that referenced this issue Aug 5, 2020
This binds the spin-bit state to a network path, which aligns with
intent better than the existing language.  It's more words, but it is
far less ambiguous.

Closes #3802.
Late Stage Processing automation moved this from Editorial Issues to Issue Handled Aug 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport 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.

3 participants