SwiftQUIC: Provide path events when QUICPath changes or is validated#55
Open
agnosticdev wants to merge 2 commits into
Open
SwiftQUIC: Provide path events when QUICPath changes or is validated#55agnosticdev wants to merge 2 commits into
agnosticdev wants to merge 2 commits into
Conversation
agnosticdev
requested review from
ekinnear,
kkuk24,
rpaulo and
tfpauly
as code owners
July 18, 2026 21:36
Collaborator
Author
|
Another design consideration for swift-nio-quic is that this change takes into account a defined UDP and IP stack running underneath QUIC. In swift-nio-quic, QUIC sits on top of a UDP socket and so we will need to further enhance this change to know when the clients endpoint has changed there also so we can properly expose an event in this case as well. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There is a need for swift-nio-quic to observe events when
QUICPathchanges or becomes validated. This typically happens during connection migration. It is not appropriate to exposeQUICPathdirectly so this change exposes a new type calledQUICPathInfothat carries local and remote Endpoint information about the new datagram path underneath QUIC when it changes. WhenQUICPathchanges or becomes validatedQUICchecks with the lower protocol (UDP) to obtain the endpoints of the new path below it and sends aQUICEventthat can be observed at the connection level through an object such asNewStreamFlowHarnessand the application level can update needed info based on these events.Design considerations:
QUICPathInfoneeds to beSendablebecauseDomainSpecificNetworkProtocolEventisSendable.Endpointis notSendableand so I had to expose it through a computed property here. That is the need forPathAddressonQUICPathInfo.