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

Note that path state cannot be removed without reception of PATH_ABANDON #475

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

mirjak
Copy link
Collaborator

@mirjak mirjak commented Dec 11, 2024

fixes #471

Copy link
Contributor

@qdeconinck qdeconinck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Copy link
Contributor

@huitema huitema left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not think this paragraph is necessary. I also think it is probably wrong. Suppose that I put a path in a "locally abandoned" state, and:

  • send a last ACK for the packets received so far,
  • consider all the packets sent so far and not acknowledged,
  • drop all incoming packets on that path without processing them.

I have at that point removed 99% of the path state -- the only resource that I need to keep is the path identifier, and I will only remove that when the ABANDON is received. But I have removed the bulk of the memory allocation: the copy of packets waiting for an ACK, the list of packets received from the peer that should be acked, probably the CID allocated for the path as well.

Yes, that will lead to packet loss, but so what? I have sent the ABANDON already, the peer should not be using the path, if it keeps doing so, too bad. There is never a guarantee that a packet will be received, and there is no protocol violation if the packets that were dropped are not acked.

Which points that [see next comment]

@mirjak
Copy link
Collaborator Author

mirjak commented Dec 16, 2024

@huitema looks like you comment above is half finished only...?

So what exactly is wrong about the current text?

I proposed this PR because the agreement in issue #471 that we wanted to note this issue. Please continue discussion there if you changed your mind and think we should not do anything.

@huitema
Copy link
Contributor

huitema commented Dec 17, 2024

The only recommendation that we should make is to not take any drastic action too soon. For example, it would be bad if application waited less than 3 PTO before closing the connection because they have not received a PATH_ABANDON yet.

draft-ietf-quic-multipath.md Outdated Show resolved Hide resolved
@mirjak
Copy link
Collaborator Author

mirjak commented Dec 17, 2024

I entered your proposed change which is fine for me. But based on your second comment, do you want to add anther sentence like:

"An endpoint SHOULD NOT remove path state earlier than 3 PTOs after sending the PATh_ABANDON frame".

?

@huitema
Copy link
Contributor

huitema commented Dec 17, 2024

Yes, please add the warning against removing state too soon.

draft-ietf-quic-multipath.md Outdated Show resolved Hide resolved
@mirjak mirjak requested review from huitema and qdeconinck December 23, 2024 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

If the peer does not reply with a path_abandon frame, state can never be removed
3 participants