Skip to content

QUIC: fix sending of PATH_STATUS frames for newly opened paths #3578

@flub

Description

@flub

When we open a path, we immediately schedule the PATH_STATUS_AVAILABLE or PATH_STATUS_BACKUP frames. But we currently send those not together with the PATH_CHALLENGE which opens the path. Which means it will be sent immediately on the already existing path.

If the PATH_STATUS frame arrives before the PATH_CHALLENGE --which may never arrive-- then it currently is ignored because the PathData does not yet exist: https://github.com/n0-computer/quinn/blob/e74c803219cb83f1780f59dcc6823f422f244703/quinn-proto/src/connection/mod.rs#L5565

You can observe this behaviour in the endpoint_two_direct_add_relay test, which establishes the connection via a direct path and adds a relay path. Since the relay path is slower, the PATH_STATUS frame arrives before the PATH_CHALLENGE arrives.

The best solution is probably to make sure that PATH_STATUS frames for not-yet-validated paths are only sent together with the PATH_CHALLENGE frame.

Metadata

Metadata

Assignees

No one assigned

    Labels

    multipathQUIC Multipath in irohquinnA bug or feature in the QUIC stack

    Type

    Projects

    Status

    👍 Ready

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions