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

Clarifications on PATH_ABANDON #46

Merged
merged 4 commits into from
Oct 25, 2021
Merged

Clarifications on PATH_ABANDON #46

merged 4 commits into from
Oct 25, 2021

Conversation

mirjak
Copy link
Collaborator

@mirjak mirjak commented Oct 25, 2021

fixes #32

Please carefully review the text about abandon frames on the last active path. This is new and maybe not what you intended, however, because of potential crossing of abandon frames from each direction (as mentioned by @huitema in the issue), I don't think receiving an abandon frame on the last active path should be a protocol violation.

fixes #32 

Please carefully review the text about abandon frames on the last active path. This is new and maybe not what you intended, however, because of potential crossing of abandon frames from each direction (as mentioned by @huitema in the issue), I don't think receiving an abandon frame on the last active path should be a protocol violation.
draft-lmbdhk-quic-multipath.md Outdated Show resolved Hide resolved
draft-lmbdhk-quic-multipath.md Outdated Show resolved Hide resolved
received a PATH_ABANDON frame for the last open path, it MAY instead try to open a new path, if
available, and only initiate connection closure if path validation fails or a CONNECTION_CLOSE frame
is received from the server. Similarly the server MAY wait for a short, limited time such as one RTO
if a path probing packet is received on a new path before sending the CONNECTION_CLOSE frame.
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it be more clear that the endpoint just use CONNECTION_CLOSE frame immediately if the endpoint don't want to use the last path?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, that's what the client/sender should do. However this text is discussing what happens if you received a PATH_ABANDON on the last open path despite.

We could consider this as a protocol violation, however, as two PATH_ABANDON frames for each end could cross each other if both ends are allow to send PATH_ABANDON, I don't think it should be a protocol violation.

We could add one more sentence that usually CONNECTION_CLOSE should be used to close the last open path.


Packets, that have previously been send on the abandoned path and are considered lost, SHOULD be
retransmitted on a different path.

Copy link
Collaborator Author

@mirjak mirjak Oct 25, 2021

Choose a reason for hiding this comment

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

Suggested change
If an endpoint wants to close the last open path of a connection, it MUST use the CONNECTION_CLOSE frame as specified in {{RFC9000}}.

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.

Some suggestions to make the text ACK/ACK_MP agnostic and about retransmissions.

as "abandoned", it means that the resources related to the path can be released.
as "abandoned", it means that the resources related to the path, such as the used connection IDs, can be released.
However, information related to data delivered over that path SHOULD not be released immediately
as ACK can still be received on other frame that also may trigger retransmission of data on another path.
Copy link
Contributor

Choose a reason for hiding this comment

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

"as acknowledgment can still be received or other frame that..."

as ACK can still be received on other frame that also may trigger retransmission of data on another path.

The endpoint sending the PATH_ABANDON frame SHOULD consider a path as abandoned when the ACK for the
packet that contained the PATH_ABANDON frame was received. When releasing resources of a path,
Copy link
Contributor

Choose a reason for hiding this comment

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

"when the packet that contained the PATH_ABANDON frame got acknowledged"

draft-lmbdhk-quic-multipath.md Outdated Show resolved Hide resolved
might need to rely on an idle time out to close the path, as described in Section {{idle-time-close}}.

Packets, that have previously been send on the abandoned path and are considered lost, SHOULD be
retransmitted on a different path.
Copy link
Contributor

Choose a reason for hiding this comment

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

I would precise that the retransmittable frames (or content) of these packets should be retransmitted

@qdeconinck qdeconinck merged commit 6391660 into master Oct 25, 2021
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.

Sounds good. I think the next feedback will come once we have implemented and tested the feature.

mirjak added a commit that referenced this pull request Oct 25, 2021
I believe the intention was to add this sentence as part of PR #46 so I'm committing directly to master.
@mirjak mirjak deleted the mirjak-abandon branch March 12, 2024 16:19
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.

Abandon needs clarification
4 participants