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

Rework path migration #1859

Merged
merged 15 commits into from
Apr 4, 2025
Merged

Rework path migration #1859

merged 15 commits into from
Apr 4, 2025

Conversation

huitema
Copy link
Collaborator

@huitema huitema commented Mar 24, 2025

Reworking the multipath implementation. The core of the update is to replace the flat structure picoquic_path_t by a two level structure: on picoquic_path_t per "unique path identifier", and a series of picoquic_tuple_t per address/port pairs tested on that path. This follows the discussion in issue #1854. The "RFC 9000 without multipath" handling of paths becomes a subset of the "multipath" mode, with just one path and potentially many tuples.

With this change, we can now support the "preferred address" migration according to spec -- previous versions insisted on creating an extra path instead of migrating the path 0.

The new code is shorter, and (a bit) less complex. We could make it shorter still because know we have strict 1-1 relation between picoquic_path_t structures and number spaces, and also between these structures and lists of connection identifiers. But that should be the work of another PR.

Close #1854.

@huitema huitema requested a review from suhasHere March 24, 2025 06:41
@huitema huitema merged commit 80ec1f2 into master Apr 4, 2025
11 checks passed
@huitema huitema deleted the rework-path-migration branch April 4, 2025 00:42
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.

Unify implementations of "multipath" and "migration".
1 participant