Skip to content

dtls13: restore saved flight on resend failure#124

Draft
zRedShift wants to merge 6 commits into
algesten:mainfrom
zRedShift:fix/dtls13-resend-restores-saved-flight
Draft

dtls13: restore saved flight on resend failure#124
zRedShift wants to merge 6 commits into
algesten:mainfrom
zRedShift:fix/dtls13-resend-restores-saved-flight

Conversation

@zRedShift
Copy link
Copy Markdown
Contributor

@zRedShift zRedShift commented May 24, 2026

Draft / stack notice

This is a stacked draft, not a standalone PR against main yet. GitHub currently shows the full dependency train in the diff.

Dependency stack currently included in this branch:

  1. dtls: defer replay commits until datagram parse succeeds #121 dtls: defer replay commits until datagram parse succeeds
  2. dtls13: preserve app data after same-datagram KeyUpdate #122 dtls13: preserve app data after same-datagram KeyUpdate
  3. dtls13: preserve overlapping KeyUpdate flights #123 dtls13: preserve overlapping KeyUpdate flights
  4. dtls13: bound ACK tracking during handshake replacement #120 dtls13: bound ack tracking during handshake replacement

The actual #124-specific commit is only:

  • 35088fe dtls13: restore saved flight on resend failure

So this should be reviewed either after the dependency PRs land, or by comparing only against stack base 17475c7530ad62c5e9c6b87239f1327d2a6c6fca.

Summary

  • preserve saved DTLS 1.3 flights when resend or local KeyUpdate output hits transmit backpressure
  • keep retry state resumable after partial queued progress
  • surface immediate timeout-driven progress when pending post-KeyUpdate ACK/response work remains after output backpressure

Validation for the current stack base

  • cargo fmt --check
  • extern/scratch/dimpl/scripts/check-snowflake-local.pl 17475c7530ad62c5e9c6b87239f1327d2a6c6fca
  • git diff --check 17475c7530ad62c5e9c6b87239f1327d2a6c6fca..
  • cargo test --test dtls13 key_update --features rcgen
  • cargo test --all-targets --features rcgen
  • cargo clippy --all-targets --features rcgen -- -D warnings

CHANGELOG uses the expected PR number #124.

@algesten
Copy link
Copy Markdown
Owner

The sheer size of this one seems iffy. It also breaks architecture in multiple ways.

@zRedShift zRedShift closed this May 24, 2026
@zRedShift zRedShift reopened this May 24, 2026
@zRedShift zRedShift force-pushed the fix/dtls13-resend-restores-saved-flight branch from 5c15394 to 35088fe Compare May 24, 2026 07:09
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.

2 participants