Skip to content

Conversation

@matheus23
Copy link
Member

Description

This changes the PTO calculations for the deadline by which we expect PATH_ABANDONs to arrive as well as when we can discard a path.

Concretely:

  • We expect the PATH_ABANDON to be reciprocated by 3 * PTO of the path that we send the PATH_ABANDON on
  • After the above timeout happens, or after receiving a PATH_ABANDON, we wait for another 3 * PTO of the path that's abandoned to discard the path state.

Waiting 3 * PTO for a response on a particular path is pretty standard procedure, so this makes sense for PATH_ABANDON as well. By moving the code to where the PATH_ABANDON is actually sent we make sure that we know which path the PATH_ABANDON is sent on.

Waiting 3 * PTO to discard the path state is similar to the time that's used for draining connections: This is the best effort at making sure there's no more stray datagrams flying around.

We still avoid setting a time for an expected PATH_ABANDON receive, because that timer might fire incorrectly when the path was abandoned just before the connection severs. We don't know if the peer actually ignored it, or if it's due to packet loss.

@matheus23 matheus23 self-assigned this Dec 19, 2025
@github-actions
Copy link

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/quinn/pr/291/docs/iroh_quinn/

Last updated: 2025-12-19T16:16:43Z

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 95.29412% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.53%. Comparing base (200a68a) to head (8702e44).

Files with missing lines Patch % Lines
quinn-proto/src/connection/mod.rs 95.18% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #291      +/-   ##
==========================================
+ Coverage   76.33%   76.53%   +0.20%     
==========================================
  Files          81       83       +2     
  Lines       22962    23363     +401     
==========================================
+ Hits        17528    17881     +353     
- Misses       5434     5482      +48     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@n0bot n0bot bot added this to iroh Dec 19, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Dec 19, 2025
@flub flub added the multipath Related to the QUIC Multipath extension. label Dec 22, 2025
@flub flub self-requested a review December 22, 2025 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

multipath Related to the QUIC Multipath extension.

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

4 participants